我已将Json发送到Web方法。而web方法没有接收json作为字符串。
POST方法Test1.aspx -
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:49633/Test3.aspx/Get");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"d\":{\"accessKey\":\"Chennai\",\"channelId\":\"1025\"}}";
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var responseText = streamReader.ReadToEnd();
return responseText;
}
Test3.aspx中的WEB方法
[System.Web.Services.WebMethod]
public static string Get(string d)
{
return d;
}
回复 -
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title></head>
<body>
<form name="form1" method="post" action="Booking.aspx" id="form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTg3NjI4NzkzNmRkOvsswBe8G74mfKP2QBvs0WW2jms=" />
<div>
<span id="Label3"><font color="Fuchsia">Responce:-</font></span>
<span id="Label1">Label</span>
</div>
</form>
</body>
</html>
QUERY -
我收到HTML页面的回复。但是我希望收到我通过POST方式发送的Json
JSON STRING -
{"d":{"accessKey":"Chennai","channelId":"1025"}}
编辑
我已将json字符串更改为{&#34; accessKey&#34;:&#34; Chennai&#34;,&#34; channelId&#34;:&#34; 1025&#34;}并更改了webmethod获取字符串。
[System.Web.Services.WebMethod]
public static string Get(string accessKey, string channelId)
{
return accessKey + channelId;
}
我收到了正确的channelId,accesskey值。但我的原始字符串非常大。所以我需要接收相同的Json字符串,我通过POST方法发送。 bzs我只接受部分接收。我的客户端之一通过调用此Webs方法发送Json字符串。感谢。
编辑2 -
根据Mez Said,我已经包含了ScriptMethod。但它通过远程服务器返回错误:(500)内部服务器错误。
[System.Web.Services.WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string Get(string d)
{
return d;
}
答案 0 :(得分:0)
您可能达到了json的最大限制。尝试将此添加到您的web.config。
<configuration>
...
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="300000" />
</webServices>
</scripting>
</system.web.extensions>
</configuration>