17
私はJSONを初めて使用しており、助けが必要です。 jqueryでJSONを使用していて、ウェブ上で実行しているWebサービスから正しく情報を取得できます。しかし、私はそれをC#でHttpWebRequestを使用して動作させることはできません。私は以下のコードを投稿します。 Webサービスであり、私はこのコードを使用して「callJson(ストリングx)」を呼び出すことができるようにしたいC#HttpWebRequestを使用してjsonをWebサービスに送信する
/// <summary>
/// Summary description for VBRService
/// </summary>
[WebService(Namespace = "http://test.visitblueridge.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class VBRService : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string callJson(string x)
{
return "Worked =" + x;
}
}
、
var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"x\":\"true\"}";
streamWriter.Write(json);
streamWriter.Flush();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
return result;
}
私は内部サーバーエラーを取得しておきます。タイプをapplication/jsonに変更して追加すると、
request.Headers.Add("SOAPAction", "http://test.visitblueridge.com/callJson");
私は受け入れられないメディアエラーが発生します。
ありがとうございました。これが他人に役立つことを願っております。
マイナーコメントが、私はstreamWriter.Flush(だと思います)。使用ブロックを離れるときに自動的に呼び出されるため、不要です –