cURLをC#web-request相当のものに変換しようとしています。私は、cURL(-o response.zip)からの応答のダウンロードなしで、cURLをC#に変換することができます。しかし、問題があるのは、(-o response.zip)response.zipのcURLコードを翻訳/変換するためのC#コードで、ファイルのcURL構文をダウンロードすることは考えられません。cURLをWebRequestに変換します。CURLに相当する結果のdUload jonファイルをzip出力として出力します。 '-o response.zip'
以下は私のcURLです。以下は
curl -X GET -H "Content-Type: application/json" -H "X-API-TOKEN: 123456789asdfghj1234qqwerewrty" "https://yourdatacenterid.test.com/API/v3/responseexports/ES_1234sdfasas13wer/file" -o response.zip
私は形式でない文字列の印刷から結果として下記なった、これまでのところ、私が持っている
string baseURLWithResponseID = "https://yourdatacenterid.test.com/API/v3/responseexports/ES_1234sdfasas13wer/file";
var request = (HttpWebRequest)WebRequest.Create(new Uri(baseURLWithResponseID));
request.Method = "GET";
request.AllowAutoRedirect = false;
request.ContentType = "application/json";
request.Accept = "*/*";
request.Headers.Add("X-API-TOKEN", "123456789asdfghj1234qqwerewrty");
// Here I'm missing how to convert -o response.zip as C# code ?
var response = request.GetResponse();
using (var streamReader = new StreamReader(stream: response.GetResponseStream()))
{
var jsonresult = streamReader.ReadToEnd();
Response.Write(jsonresult.ToString()); //I'm able to print the response json as a string but I want it to be downloaded as a zip file
}
APIレスポンスをCURL構文のC#でjsonダウンロード可能ファイルとして入手してください。ありがとうございました。
アップデート1:私は以下のようにコードを変更した
。
string baseURLWithResponseID = "https://yourdatacenterid.test.com/API/v3/responseexports/ES_1234sdfasas13wer/file";
string path = "c:\\API_Test\\response.json";
var request2 = (HttpWebRequest)WebRequest.Create(new Uri(baseURLWithResponseID));
request2.Method = "GET";
request2.AllowAutoRedirect = false;
request2.ContentType = "application/json"; // Tried with "application/gzip" but output no change
request2.Accept = "*/*";
request2.Headers.Add("X-API-TOKEN", "123456789asdfghj1234qqwerewrty");
request2.Headers.Add("Accept-Encoding", "gzip,deflate"); // I added this new line
var responseFile = request2.GetResponse();
using (var src = responseFile.GetResponseStream())
{
using (var dst = File.Create(path))
{
src.CopyTo(dst);
}
}
ここで出力されるJsonファイルは、Jsonファイルでも読み込み不能な形式になっているかどうかわかりません。私がポストマンアプリケーションから同じことをしようとすると、私はそれをzipファイルとして取得し、それを解凍すると、きれいなjsonファイルを読み取ることができます。ここで
第三者のウェブサイトからのAPIの試用版からの画像です。私のcURL変換をC#にチェックしてください、何か不足していますか? JSONではありません
JSONではありません、それは(のStreamReaderが、ストリームを使用していない)バイナリにそれを読んで、それをディスクに書き込む(またはあなたが好きな場所に保管)、ZIPファイル自体です – Gusman
Gusman、返信いただきありがとうございます。はい。あなたは右のcURLの出力をresponse.zipとして表示しています。しかし、私はこれに新しいです、あなたは私がそれをやる方法を教えてください。サンプルコードまたはURL参照は参考になります。 – priya777
Gimme 5分、私は例を書いてください – Gusman