c# - 使用 C# 调用 json

我正在尝试使用 C# 制作 a json call。我尝试创建调用,但没有成功:

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”。这可能没有什么不同,但值得一试,以防它不起作用。

https://stackoverflow.com/questions/4982765/

相关文章:

json - 在 Play Framework JsObject 中解析 Json 数组

python - 如何在保留矩阵维度的同时序列化 numpy 数组?

java - 将 InputStream 转换为 JSONObject

c# - JavaScriptSerializer 可以排除具有空值/默认值的属性吗?

python - 如何在 Django REST 框架中返回自定义 JSON

python - 在 View 中强制应用程序/json MIME 类型(Flask)

java - 非空属性引用 transient 值 - transient 实例必须在当前操作之前保

json - 雅虎财经全币种报价 API 文档

python - 使用 Scrapy 抓取 JSON 响应

php - 如何防止 json_encode() 删除包含无效字符的字符串