[英]How to use PennySMS in c#.net?
Has anyone used PennySMS's web services? 有没有人使用过PennySMS的网络服务? ( https://www.pennysms.com/docs ) I'm having some difficulty doing a successful HttpPost request.
( https://www.pennysms.com/docs )我在执行成功的HttpPost请求时遇到了一些困难。
Update: I'm a n00b to Web Services. 更新:我是n00b的Web服务。 I don't even know if I can complete this type of request server-side.
我什至不知道我是否可以完成这种类型的请求服务器端。 I've replaced the actual info in the params with example info.
我已经用示例信息替换了参数中的实际信息。
protected void bText_Click(object sender, EventArgs e)
{
string XML = "<?xml version=\"1.0\"?>"
+"<methodCall>"
+"<methodName>send</methodName>"
+" <params>"
+" <param>"
+ " <value><string>MY KEY</string></value>"
+" </param>"
+" <param>"
+ " <value><string>service@example.com</string></value>"
+" </param>"
+" <param>"
+ " <value><string>555555555</string></value>"
+" </param>"
+" <param>"
+" <value><string>Test Message</string></value>"
+" </param>"
+" </params>"
+"</methodCall>";
SendText("http://api.pennysms.com/xmlrpc", "XML");
}
public void SendText(string _URL, string _parameters)
{
WebRequest request = WebRequest.Create(_URL);
request.Method = "POST";
string postData = _parameters;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "text/xml";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
}
If you're using the XML-RPC API, have you checked your content-type? 如果您使用的是XML-RPC API,是否检查了内容类型? It should be "text/xml".
它应该是“ text / xml”。
The following code works. 以下代码有效。 I've made no attemps to optimize anything.
我没有尝试优化任何东西。 Unless the server restricts outgoing connections, you can use this server-side.
除非服务器限制传出连接,否则您可以使用此服务器端。
protected static string DoRequest()
{
string XML = "<?xml version=\"1.0\"?>"
+"<methodCall>"
+"<methodName>send</methodName>"
+" <params>"
+" <param>"
+ " <value><string>MY KEY</string></value>"
+" </param>"
+" <param>"
+ " <value><string>service@example.com</string></value>"
+" </param>"
+" <param>"
+ " <value><string>555555555</string></value>"
+" </param>"
+" <param>"
+" <value><string>Test Message</string></value>"
+" </param>"
+" </params>"
+"</methodCall>";
return SendText("http://api.pennysms.com/xmlrpc", XML);
}
public static string SendText(string _URL, string _parameters)
{
WebRequest request = WebRequest.Create(_URL);
request.Method = "POST";
string postData = _parameters;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "text/xml";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
long responseLength = request.GetResponse().ContentLength;
Stream responseStream = request.GetResponse().GetResponseStream();
MemoryStream memStream = new MemoryStream((int)responseLength);
byteArray = new byte[4096];
int bytesRead = 0;
bytesRead = responseStream.Read(byteArray, 0, 4096);
while(bytesRead > 0)
{
memStream.Write(byteArray, 0, bytesRead);
bytesRead = responseStream.Read(byteArray, 0, 4096);
}
return Encoding.UTF8.GetString(memStream.ToArray());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.