我正在尝试使用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”。这可能没有什么区别,但是如果它不起作用,则值得尝试。
问题内容: 我正在查看以下API: http://wiki.github.com/soundcloud/api/oembed- api 他们举的例子是 呼叫: 响应: 我该怎么做才能仅通过URL获得此JSON对象? 问题答案: 看来他们为format参数提供了一个选项,它将返回JSONP。您可以像这样检索JSONP:
问题内容: 我想从我的C ++程序中调用python脚本文件。 我不确定要分发给的人是否会安装python。 基本上,我正在寻找一个可以使用的具有Apache类似发行许可证的.lib文件。 问题答案: Boost有一个python接口库可以为您提供帮助。 Boost.Python
问题内容: 从python模块中,我正在调用 Hello World 可执行文件,该文件仅打印到stdout。我对将输出重定向到python并遇到这个答案很感兴趣,这几乎将我带到了解决方案中。 此答案的关键部分是以下代码段: 我也想恢复重定向之前的标准输出。 问题 上面的函数到底发生了什么? 是什么和做什么? 什么啊 8号线在做什么?() 如何将标准输出存储在对象中? 调用 Hello World
问题内容: 我是Visual Studio用户,习惯于调试断点。我现在在Linux环境中工作,并且正在使用Eclipse作为IDE。我是linux和eclipse的新手。我不知道如何在Eclipse中使用gdb。我尝试在命令行中使用gdb,但它并不像拥有UI那样容易。 如何在Eclipse中使用gdb? 问题答案: 以下说明适用于Eclipse 3.5(Galileo)。对于3.6(Helios)
问题内容: 如何在C#中解码JSON响应? 问题答案: 签出DataContractJsonSerializer。您必须以.NET 3.5为目标,这意味着非常需要Visual Studio 2008。 这是一篇有关使用Json数据协定序列化程序的不错的博客文章。
问题内容: 我在处理JNA中的回调时遇到问题。 我正在尝试使用C API,该API使用回调来处理多个会话事件(登录,注销,连接问题…)。 会话对象(称为)是不透明的结构。所有回调均在结构中注册。根据API,我应该声明回调对象,并将其放入创建对象时将提供的Config对象中。如果我不想使用某些回调,则应该使用对其进行初始化。API正在使用调用约定。 这是与我的问题有关的C标头的代码段: 这是我等效的