![](/img/trans.png)
[英]asp.net webforms - how to get the json data of a javascript function using c#
[英]How to get json string as response using Webhook in asp.net c# Webforms
我的SMS公司有一些Webhook方法可将传递报告发送到我们的首选url,然后我们必须从该url获取数据并将其更新为日志。
为此,我使用以下代码:
HttpWebRequest request = WebRequest.Create("http://example.com/sms/response.html") as HttpWebRequest;
request.UserAgent = "jaidevkh";
request.ContentType = "text/html,application/xhtml+xml,application/xml; charset=utf-8";
request.Accept = "text/html,application/xhtml+xml,application/xml";
request.Method = "GET";
//request.ContentLength = 0;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
WebHeaderCollection header = response.Headers;
var encoding = ASCIIEncoding.ASCII;
string responseText = "";
using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))
{
responseText = reader.ReadToEnd();
}
Label kl = (Label)cph.FindControl("j");
kl.Text = responseText.ToString();
以及JSON格式,具体如下所示:
data=[
{
"requestId":"35666a716868323535323239",
"userId":"38229",
"report":[
{
"desc":"REJECTED",
"status":"16",
"number":"91XXXXXXXXXX",
"date":"2015-06-10 17:09:32.0"
}
],
"senderId":"tester"
},
{
"requestId":"35666a716868323535323239",
"userId":"38229",
"report":[
{
"desc":"REJECTED",
"status":"16",
"number":"91XXXXXXXXXX",
"date":"2015-06-10 17:09:32.0"
},
{
"desc":"REJECTED",
"status":"16",
"number":"91XXXXXXXXXX",
"date":"2015-06-10 17:09:32.0"
}
],
"senderId":"tester"
}
]
在此,responseText为空白。 请提出此代码有什么问题。
谢谢
周杰伦
这是从供应商接收数据的示例。
首先,您必须创建两个模型以按供应商格式获取数据:
public class Response
{
public string RequestId { get; set; }
public string UserId { get; set; }
public List<ResponseReport> Report { get; set; }
public string SenderId { get; set; }
}
public class ResponseReport
{
public string Desc { get; set; }
public int Status { get; set; }
public string Number { get; set; }
public DateTime Date { get; set; }
}
这些模型是由您的json格式创建的
之后,您必须创建一个获取数据的处理程序(首选url)。
public class GetDelivery : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
var jsonSerializer = new JavaScriptSerializer();
var jsonString = string.Empty;
context.Request.InputStream.Position = 0;
using (var inputStream = new StreamReader(context.Request.InputStream))
{
jsonString = inputStream.ReadToEnd();
}
var data = new List<Response>();
data = jsonSerializer.Deserialize<List<Response>>(jsonString);
//Modification and Saving Data
context.Response.Write("OK");
}
public bool IsReusable
{
get
{
return false;
}
}
}
在此处理程序中,您可以获得供应商发送给您的内容,并且可以对其进行修改和保存。
注意:数据模型和json格式必须彼此相似
测试代码
最后,通过供应商测试发送数据,您可以使用以下代码:
<button id="send" class="CallHandler">Send</button>
<script>
$(".CallHandler").click(function () {
alert('test');
$.ajax({
url: "GetDelivery.ashx",
contentType: "application/json; charset=utf-8",
type: 'POST',
dataType: "json",
data: JSON.stringify([
{ "requestId": "35666a716868323535323239", "userId": "38229", "report": [{ "desc": "REJECTED", "status": "16", "number": "91XXXXXXXXXX", "date": "2015-06-10 17:09:32.0" }], "senderId": "tester" },
{ "requestId": "35666a716868323535323239", "userId": "38229", "report": [{ "desc": "REJECTED", "status": "16", "number": "91XXXXXXXXXX", "date": "2015-06-10 17:09:32.0" }, { "desc": "REJECTED", "status": "16", "number": "91XXXXXXXXXX", "date": "2015-06-10 17:09:32.0" }], "senderId": "tester" }
]),
});
return false;
});
</script>
希望它令您满意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.