通过ASP.NET C#发送HTTP请求

3

我想通过C#发送HTTP Get请求,但似乎没有起作用。这是我的工作。我希望您指出需要进行的更正以使其正常工作!

            String Mobile = txt_phone.Text;
            String Message = "You have registered successfuly.";
            Uri targetUri = new Uri("http://sms-om.com/smspro/sendsms.php?user=HatemSalem");
            System.Net.HttpWebRequest request = (System.Net.HttpWebRequest) System.Net.HttpWebRequest.Create(targetUri);

1
没有错误。但是 Http 请求似乎不起作用。那段代码有什么问题? - Aan
1
那么请求值中的数据是什么?它很可能不是空的... - Phil
数据已经附加在上面代码中所示的URL中。 "http://sms-om.com/smspro/sendsms.php?user=HatemSalem" - Aan
@Adban:如果你用浏览器查看你正在使用的地址,你会收到一个“无效登录”消息。你希望HttpWebRequest有什么不同吗? - StriplingWarrior
我想从你那里得到使它工作所需的更正??,踩下去 - Yehia A.Salam
2个回答

8
我没有收到错误信息,但却收到了“无效登录”消息,这让我认为该表单实际上是进行的POST请求。以下是GET请求的示例:
using System;
using System.Net;
using System.Text;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();

        byte[] buf = new byte[8192];

        //do get request
        HttpWebRequest request = (HttpWebRequest)
            WebRequest.Create("http://sms-om.com/smspro/sendsms.php?user=HatemSalem");


        HttpWebResponse response = (HttpWebResponse)
            request.GetResponse();


        Stream resStream = response.GetResponseStream();

        string tempString = null;
        int count = 0;
        //read the data and print it
        do
        {
            count = resStream.Read(buf, 0, buf.Length);
            if (count != 0)
            {
                tempString = Encoding.ASCII.GetString(buf, 0, count);

                sb.Append(tempString);
            }
        }
        while (count > 0);
        Response.Write(sb.ToString());
    }
}

祝你好运!


我该如何将它转换为在ASP.NET上使用? - Aan

6

您目前尚未执行请求,请使用:

var response = request.GetResponse() as HttpWebResponse;

这是从网络实际获取数据并提供任何相关错误信息的点。


很好。我必须删除 as HttpWebResponse,否则会出现错误。 C#不是我的领域,只需要这个解决方案来解决一个小问题。 这个问题和这个答案帮了很多忙 :) - Avi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接