Gzip としてエンコードされた API 応答全て、
内部 API をタップしていますが、API エンドポイントの予想される応答は Excel ファイルです。 ただし、HTTP リクエストを使用しようとすると、応答が返されます。 応答がエンコードされていると仮定していますが、データを抽出して使用する良い方法は何でしょうか。
エンドポイントに行うリクエストは次のとおりです。
HeaderStr = "Authorization: Bearer " || AccessToken;
Request = New HTTP Request(
URL( URLDes ),
Method( "Get" ),
Headers( {HeaderStr} )
) << Send;私が受け取る応答は次のとおりです。
"PK"
Re: Gzip としてエンコードされた API 応答もちろん@ブライアン_ブーン. 私は JMP をより良く、より簡単にすることに貢献したいと思っています。 
Re: Gzip としてエンコードされた API 応答@uday_guntupalli
それは持っているための素晴らしい使い方です
HTTP Request << Send 受け入れます。たとえば、「blob」または「text」引数を受け入れます。
JMP 15で検討します。ウィッシュリストに追加しますか?
ありがとう
-ブライアン
Re: Gzip としてエンコードされた API 応答Send の代わりに Download を引き続き使用できます。
上記が示すのは、Web サービスから完全なダウンロードを取得したことです。 (どっちがいい)
送信の代わりにダウンロードを使用するには、次のようにします。
filename = request << Download("$temp/Test1.xlsx", "replace"); //file is the filename returned by the web server. replace will replace it.
if( !IsEmpty(filename), //a filename is empty if the download fails
//process your file
);
あなたの場合、MIME タイプは「text/html」であり、Excel スプレッドシートではありません。 xlsx拡張子で名前を付けただけです。
Web サービスに Excel スプレッドシート用の別のエンドポイントがある場合は、それを使用してください。
また
Web サービスで "Accept" ヘッダーを使用して Excel スプレッドシートを指定している場合は、それを使用します。
そうでなければ
ファイルをテキスト エディタで開き、内容を確認します。 (またはブラウザ) mimetype によると、html をダウンロードしました。
Re: Gzip としてエンコードされた API 応答@ブライアン_ブーン、
有難うございます。

これはある程度は役に立ちますが、データをダウンロードして圧縮解除し、JMP 内で解釈する以外に方法がわかりません。私の解釈は正しいですか、それとも他のアプローチがありますか?
Re: Gzip としてエンコードされた API 応答コードに含まれているのは、Request が Send の結果であることです。
私はあなたが望むものは次のように*思う*:
request = New Http Request(
URL( URLDes),
Method("GET"),
Headers({HeaderStr})
); //request is the request object
data = request << Send(); //data is the data returned by the web server
そうすれば、サービスを操作した後にリクエストのステータスを調べることができます。
私は通常、HTTP リクエストのことを 3 つのステップで考えます
作成
構成、設定
送信
Re: Gzip としてエンコードされた API 応答@ブライアン_ブーン、
すべてのメッセージが同じエラーを返します。 ファイルをダウンロードしようとすると@Craige_Hales推奨、正常に動作しますが、診断機能のいずれも結果をもたらしませんでした
Re: Gzip としてエンコードされた API 応答@ジェフ・パーキンソン、
これが私が受け取るエラーです:
開こうとした: /C:/Users/Test.xlsx
'Open' のアクセスまたは評価でテーブルを開けません、Open/*####*/("C:\Users\Test.xlsx")
Re: Gzip としてエンコードされた API 応答さらに、
何が
request << Get Status Message
見せる?
これは、Web サーバーからのステータス メッセージです (200 が適切です)。
がある:
request << Get Status // a number
//booleans
request << Is Successful
request << Has Error
request << Has Client Error
request << Has Server Error
request << Has Information
request << Has Redirection
これらにより、接続とサーバーに対して行われた要求に関する情報を得ることができます。
Re: Gzip としてエンコードされた API 応答request << Send() は、blob またはテキストのいずれかを返します。
あなたが呼び出しているものを見るには:
request << Get Mime Type();
それらのほとんどはここでカバーされています:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types
実際に MIME タイプ情報を追加するかどうかはサーバー次第ですが、最近ではほとんどのサーバーが追加しています。
Re: Gzip としてエンコードされた API 応答
@uday_guntupalli書きました:
ファイルがダウンロードされていることがわかりますが、JMP は手動でもスクリプトでもファイルを開くことができません。 ダウンロードとオープンの間にwait()を導入しようとしましたが、それも役に立ちませんでした。

「In the following script...」行の上にある残りのエラー メッセージは何ですか?
ダウンロードした .xlsx ファイルを Excel で開くことができますか?
Re: Gzip としてエンコードされた API 応答@Craige_Hales 、
ありがとうクレイグ。 95% 行き着きます。 ファイルがダウンロードされていることがわかりますが、JMP は手動でもスクリプトでもファイルを開くことができません。 ダウンロードとオープンの間にwait()を導入しようとしましたが、それも役に立ちませんでした。

Re: Gzip としてエンコードされた API 応答<
request = New HTTP Request(
URL(
"http://drawoutside.com/abc123.xlsx"
),
Method( "Get" )
);
request<<DOWNLOAD></DOWNLOAD>
JMP's open function imported the xlsx fileJMP の open 関数は xlsx ファイルをインポートしました
@ブライアン_ブーン
Re: Gzip としてエンコードされた API 応答@Craige_Hales 、
仕事以外で私を導いてくれてありがとう。 明日帰ってきたらやってみよう。 しかし、ここに私がしたことがあります:
応答が実際に zip ファイルであった場合、これは機能しませんでした。 RでWriteBinコマンドとcontentコマンドを使ってExcelファイルとして書き出すことができたので、Excelファイルだと思います。 ただし、JMPでキャプチャする方法がわかりません。
さらに、私もこれを試しました:
これもエラーになります。
ファイルのエラー: パスが無効です: \PK。
Re: Gzip としてエンコードされた API 応答実際、Excel ファイルはおそらく zip ファイルで、拡張子は xlsx です。 あなたはすでにあなたが期待するものを正確に持っているかもしれません。
Re: Gzip としてエンコードされた API 応答「PK」は .zip ファイルの署名です。 データが BLOB で受信された場合 (テキストにはバイナリ データが含まれません)、JMP の zip アーカイブ オブジェクトを使用して、次のように開くことができます (現在は機能していません...)。
za = open(blob,"zip");
座<<メンバー
za<
(スクリプト インデックスを参照してください。)