2015-04-24 31 views
0

我有麻煩正確使我的工作方案 - 在這裏我解釋一下:在C#ASP.NET檢索POST數據

  • 我有,一方面是C#的WinForms應用程序,它通過啓動IE瀏覽器的一個實例使用「導航」方法:myWebBrowser.Navigate(myUrl, "_blank", intarray, "");,其中intarray定義如下:byte[] intarray = BitConverter.GetBytes(id);。在這方面,它工作。
  • 另一方面,我有一個ASP .NET WebForms應用程序,它必須檢索這個intarray。我試過這個。

    if (HttpContext.Current != null) 
    { 
        if (Session["Authenticated"] == null) 
        { 
         var current = HttpContext.Current; 
         byte[] postdata = getpostdata(current); 
        } 
    } 
    
    private byte[] getpostdata(HttpContext CurrentContext) 
    { 
        MemoryStream ms = new MemoryStream(); 
        CurrentContext.Request.InputStream.CopyTo(ms); 
        byte[] postdata = ms.ToArray(); 
        return postdata; 
    } 
    // Convert a byte array to an Object 
    public int ByteArrayToInt(byte[] arrBytes) 
    { 
        if (BitConverter.IsLittleEndian) Array.Reverse(arrBytes); 
        int i = BitConverter.ToInt32(arrBytes, 0); 
        return i; 
    } 
    

這個問題似乎是在getpostdata(HttpContext)功能檢索數據...我與長度= 0,而不是它與長度= 4 ... 發送的一個字節數組有誰知道如何使它工作?

+0

究竟什麼是不工作? – Christian

+0

你能更具體地說明哪一部分不工作嗎?你是否附加了調試器,並通過代碼來了解哪些變量不符合你的期望? – DaveParsons

+0

我在'postdata'中得到的是一個長度爲0的字節數組。或者我應該得到一個長度爲4的字節數組...所以調試停止在'ByteArrayToInt'函數中,但問題在於檢索POST數據... – LeReferee

回答

0
var current = HttpContext.Current; 
var sr = new StreamReader(Request.InputStream, Encoding.Default); 
var postdata = sr.ReadToEnd(); 

上述

+0

你可以添加一些信息,以幫助我們理解爲什麼以及如何解決這個問題? – DaveParsons