2013-10-15 114 views
0

我有一個應該從Web窗體接收數據的網站。我無法訪問網絡表單的代碼。在Web服務上接收POST數據

我可以輸入數據應該發送到網頁表單的鏈接,並以字符串的形式將數據發送給我的網頁。我應該收到它並將其存儲在數據庫中。

我用一個空白的公共Web方法提供了一個Web服務,可以接收數據。我試圖在我的網頁上實現幾個可以訪問數據的功能,但我似乎無法得到它。我試過HTTPListeners和HTTPWebRequests,但我不確定我是否以正確的方式使用它。

在Web服務中的代碼

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

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

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(); 

    } 
} 

我已經搜查一切,嘗試了所有可能的解決方案,但代碼只是似乎並不在ASP.NET /網站的代碼上班。如果有人能幫忙,我會很感激。

回答

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 
    } 
} 
+0

感謝您的回覆。我嘗試製作一個HttpHandler文件,並將數據導向到該鏈接。但我仍然沒有收到數據。 你的意思是「在方法中獲取HttpContext」?在我的新文件中,我使用的是輸入流閱讀器,但它不起作用。你能指定我可以使用哪些命令嗎? – hriddle