我有一个网站应该从网络表单接收数据。我无法访问webform的代码。
我可以在网络表单上输入数据应该发送到的链接,它会以字符串的形式将数据发送给我的网页。我应该收到它并将其存储在数据库中。
我使用空的公共网络方法创建了一个Web服务,我可以在其中接收数据。我试图在我的网页上实现几个可以访问数据的功能,但我似乎无法得到它。我已经尝试过HTTPListeners和HTTPWebRequests,但我不确定我是否以正确的方式使用它。
网络服务中的代码
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();
}
}
我搜索过所有内容并尝试了所有可能的解决方案,但代码似乎没有用。如果有人可以提供帮助,我将不胜感激。
答案 0 :(得分:0)
我建议查看HttpHandler,更具体地说是ProcessRequest方法。您可以在方法中获取HttpContext,该方法可以让您访问正在发送的所有内容。如果HttpHandlers是新的,这可能会有所帮助:Introduction to HTTP Handlers
修改强>
实现IHttpHandler接口并创建ProcessRequest方法。从上下文中,您可以获取请求,并在请求中包含具有formVariables作为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
}
}