用C#进行json调用

我正在尝试使用C#进行json调用。我在创建呼叫时遇到了麻烦,但没有成功:

public bool SendAnSMSMessage(string message)

{

HttpWebRequest request = (HttpWebRequest)

WebRequest.Create("http://api.pennysms.com/jsonrpc");

request.Method = "POST";

request.ContentType = "application/json";

string json = "{ \"method\": \"send\", "+

" \"params\": [ "+

" \"IPutAGuidHere\", "+

" \"msg@MyCompany.com\", "+

" \"MyTenDigitNumberWasHere\", "+

" \""+message+"\" " +

" ] "+

"}";

StreamWriter writer = new StreamWriter(request.GetRequestStream());

writer.Write(json);

writer.Close();

return true;

}

任何有关如何使这项工作的建议,将不胜感激。

回答:

在您的代码中,您不会获得HttpResponse,因此您将看不到服务器端将您发回的内容。

您需要获得与获取(发出)请求类似的响应。所以

public static bool SendAnSMSMessage(string message)

{

var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://api.pennysms.com/jsonrpc");

httpWebRequest.ContentType = "text/json";

httpWebRequest.Method = "POST";

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))

{

string json = "{ \"method\": \"send\", " +

" \"params\": [ " +

" \"IPutAGuidHere\", " +

" \"msg@MyCompany.com\", " +

" \"MyTenDigitNumberWasHere\", " +

" \"" + message + "\" " +

" ] " +

"}";

streamWriter.Write(json);

}

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))

{

var responseText = streamReader.ReadToEnd();

//Now you have your response.

//or false depending on information in the response

return true;

}

}

我在pennysms文档中还注意到,他们期望内容类型为“ text / json”,而不是“ application /

json”。这可能没有什么区别,但是如果它不起作用,则值得尝试。

以上是 用C#进行json调用 的全部内容, 来源链接: utcz.com/qa/422083.html

回到顶部