Web Services 在Web服务上接收POST数据

6jygbczu  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(205)

我有一个网站,它应该从一个web表单接收数据。我无法访问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();

    }
}

我已经搜索了所有的东西,尝试了所有可能的解决方案,但代码似乎就是不起作用。如果有人能帮助我,我将不胜感激。

slsn1g29

slsn1g291#

我建议您看看HttpHandler,更具体地说,看看ProcessRequest方法。您可以在该方法中获取HttpContext,它应该可以给予您访问正在发送的所有内容。如果HttpHandlers是新的,这可能会有所帮助:Introduction to HTTP Handlers

编辑:

实现IHttpHandler接口并创建ProcessRequest方法。从上下文中,您可以获取请求,请求中包含表单变量作为NameValueCollection。更多信息请参阅here (NameValueCollection)

public class SomeHandler : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    var request = context.Request;
    NameValueCollection formVariables = request.Form;
    //do something to process the collection
  }
}

相关问题