0

我有一个应该从网络表单接收数据的网站。我无法访问网络表单的代码。

我可以在 Web 表单上输入数据应发送到的链接,然后它将数据以字符串的形式发送到我的网页。我应该收到它并将其存储在数据库中。

我使用一个空的公共 Web 方法创建了一个 Web 服务,我可以在其中接收数据。我试图在我的网页上实现几个可以访问数据的功能,但我似乎无法得到它。我已经尝试过 HTTPListeners 和 HTTPWebRequests 但我不确定我是否以正确的方式使用它。

Web 服务中的代码

public class WebService : System.Web.Services.WebService
{
    public WebService()
    {

    }
[WebMethod]
public string getData()
{
    return "Hello World";
}
}

ASP.NET / 网站中的代码

private const string URL = "http://localhost:80/WebService.asmx/getData/";
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
        request.Method = "GET";
        request.ContentType = "text/plain";

        WebResponse webResponse = (HttpWebResponse)request.GetResponse();
        Stream webStream = webResponse.GetResponseStream();
        StreamReader responseReader = new StreamReader(webStream);
        string response = responseReader.ReadToEnd();
        MessageBox.Show(response);                   //To display the received data
        // System.Diagnostics.Debug.WriteLine(response);
        responseReader.Close();

    }
}

我已经搜索了所有内容并尝试了所有可能的解决方案,但代码似乎不起作用。如果有人可以提供帮助,我将不胜感激。

4

1 回答 1

0

我建议查看 HttpHandler ,更具体地说是ProcessRequest方法。您可以在该方法中获取 HttpContext ,该方法应该使您可以访问所有正在发送的内容。如果 HttpHandlers 是新的,这可能会有所帮助:HTTP 处理程序简介

编辑:

实现 IHttpHandler 接口并创建 ProcessRequest 方法。从上下文中,您可以获取请求,请求内部是表单,其中表单变量作为 NameValueCollection。更多信息在这里(NameValueCollection)

public class SomeHandler : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    var request = context.Request;
    NameValueCollection formVariables = request.Form;
    //do something to process the collection
  }
}
于 2013-10-15T13:08:34.183 回答