1
から奇妙な文字を受け、私はHTTPリクエストを送信するには、このコードを持っている:C#の - HttpWebResponseの
public string MakeRequest(string requestUrl, object data)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl);
request.ContentType = "application/json";
request.KeepAlive = false;
request.Headers.Add("Authorization", "BEARER " + apiToken);
System.Net.ServicePointManager.Expect100Continue = false;
if (data != null)
{
request.Method = "POST";
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(data);
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
}
else
request.Method = "GET";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.Created)
throw new Exception(String.Format("Server error (HTTP {0}: {1}).", response.StatusCode, response.StatusDescription));
string Charset = response.CharacterSet;
Encoding encoding = Encoding.GetEncoding(Charset);
StreamReader reader = new StreamReader(response.GetResponseStream(), encoding);
return reader.ReadToEnd();
}
}
それは、ほとんどの通話に適していますが、1つPOST
、私は応答としてこれを受ける場所:
"�\b\0\0\0\0\0\0�V�M,.I-�/JI-R��V3<S����L�L,�L��jk[���&\0\0\0"
そして、私がFiddlerによって捕捉された呼び出しを見ると、ルーチンは受信したと言っています:
{
"MasterOrder": {
"OrderId": "65250824"
}
}
したがって、正確に何が起きていますか?そのフィドラーはどのように1つの応答を見て、アプリケーションは別の応答を見ますか?
私は理由は分からないが、あなたは間違ったエンコーディング – Daniel
試して使用してクリアされます: '"アプリケーション/ jsonの;のcharset = UTF-8を";' – Jim