Asp.net mvc 将Json数据作为webrequest的查询字符串发布
在我的场景中,API将json作为Asp.net mvc 将Json数据作为webrequest的查询字符串发布,asp.net-mvc,json,web-services,c#-4.0,httpwebrequest,Asp.net Mvc,Json,Web Services,C# 4.0,Httpwebrequest,在我的场景中,API将json作为 if (context.Request.Files.Count > 0) { jsonData = context.Request.Params["key"]; } 在我的应用程序中,如何在没有json作为查询字符串参数的情况下向该api发送web请求。Sine Json很长,我知道查询字符串是有限的 对于android和ios来说,这个api工作得很好 我已尝试将其添加到标题中。但这是徒劳的
if (context.Request.Files.Count > 0)
{
jsonData = context.Request.Params["key"];
}
在我的应用程序中,如何在没有json作为查询字符串参数的情况下向该api发送web请求。Sine Json很长,我知道查询字符串是有限的
对于android和ios来说,这个api工作得很好
我已尝试将其添加到标题中。但这是徒劳的
如何添加它,以便“jsonData=context.Request.Params[“key”];”将获得我的json。 我的请求格式在这里
urlS="http://abc.ashx?Key="+jsonRequestS;
string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x");
var webRequest1 = (HttpWebRequest)WebRequest.Create(urlS);
webRequest1.Method = "POST";
webRequest1.KeepAlive = false;
webRequest1.ContentType =string.Format("multipart/form-data; boundary={0}", boundary);//
Stream postDataStream1 = handler.GetPostStream(boundary,jsonRequestS); // Writes boundary and files to memory stream.
webRequest1.ContentLength = postDataStream1.Length;
Stream reqStream1 = webRequest1.GetRequestStream();
postDataStream1.Position = 0;
var bufferBytes = new byte[postDataStream1.Length];
postDataStream1.Read(bufferBytes, 0, bufferBytes.Length);
reqStream1.Write(bufferBytes, 0, bufferBytes.Length);
postDataStream1.Close();
reqStream1.Close();
var sReader = new StreamReader(webRequest1.GetResponse().GetResponseStream());//here Am getting the error.
string resultS = sReader.ReadToEnd();
提前感谢。谢谢您的回复。
我找到了解决这个问题的方法
将Json写入请求流,头为
postDataStream.Write(boundarybytes, 0, boundarybytes.Length);
string header = string.Format("Content-Disposition: form-data; name=\"Key\"\r\n\r\n");
headerbytes = Encoding.Default.GetBytes(header);
postDataStream.Write(headerbytes, 0, headerbytes.Length);
headerbytes = Encoding.Default.GetBytes(jsonRequestS);//writing json request.
postDataStream.Write(headerbytes, 0, headerbytes.Length);
在服务器端,它可以在语句中很好地读取
jsonData = context.Request.Params["key"];
您能提供一个您想要使用的示例请求吗?您说不想在查询字符串中放入json,然后说要从查询字符串中读取json。“jsonData=context.Request.Params[“key”];这是api中读取Json数据的语句..我不想知道如何将Json发送到api以便api能够读取它。但是作为Qry字符串,我可以发送一个冗长的Json。那么我应该使用哪种方法呢。