C#Json请求获胜';行不通
因此,基本上我正在尝试向发送一个json请求,json将结束{“召唤名称”:“DeCodux”},但我的问题是,这段代码似乎没有向他们的Web服务器上的mmr.json中发送任何内容C#Json请求获胜';行不通,c#,json,post,C#,Json,Post,因此,基本上我正在尝试向发送一个json请求,json将结束{“召唤名称”:“DeCodux”},但我的问题是,这段代码似乎没有向他们的Web服务器上的mmr.json中发送任何内容 var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://op.gg/mmr/ajax/mmr.json"); httpWebRequest.ContentType = "text/json";
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://op.gg/mmr/ajax/mmr.json");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new
{
summonerName = "DeCodux"
});
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
DataBox.Text = result;
}
}
这段代码也不会
var request = (HttpWebRequest)WebRequest.Create("http://op.gg/mmr/ajax/mmr.json/");
request.Method = "POST";
request.Host = "op.gg";
request.Accept = "application/json, text/javascript, */*";
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
request.Referer = "http://op.gg/mmr/region=EUW";
//request.ContentLength = 27;
//request.Connection = "keep-alive";
using (var writer = new StreamWriter(request.GetRequestStream()))
{
string writeit = "{\"summonerName\":\"DeCodux\"}";
// string writethis = "{\"region\"=\"EUW\"," + "\"userName\"=\"DeCodux\"}";
writer.Write(writeit);
}
var response = request.GetResponse();
var stream = response.GetResponseStream();
var json = "";
if (stream == null) return;
using (var reader = new StreamReader(stream))
{
while (!reader.EndOfStream)
{
json += reader.ReadLine();
}
}
#endregion oldtest
/* var serializer = new JavaScriptSerializer();
var x = (Dictionary<string, object>)serializer.DeserializeObject(json);
MyData data = serializer.Deserialize<MyData>(x.ToString());*/
/* var jss = new JavaScriptSerializer();
var data = jss.Deserialize<Dictionary<string, string>>(json);
*/
DataBox.Text = json;
被解析和翻译的是
{
"error": true,
"errormsg": "Please enter the name of the Summoner." }
因此,由于它将该错误作为响应提供给我,因此我的json请求似乎没有发送到他们的服务器。如果请求将被发送,但它将是不正确的,它将给我其他错误,如“此召唤者不--”等等。我还用firebug“net”模式浏览了所有的post请求头等
所以我的问题是,这里出了什么问题?为什么它不发送POST请求?你确定你有
传唤人姓名
吗?是的,我确定。使用firebug检查了数十次,您可以亲自尝试,方法是:进入op.gg/mrr,输入您想要的任何名称,然后按“Get mmr”,然后检查firebug的net选项卡。
{
"error": true,
"errormsg": "Please enter the name of the Summoner." }