winform用戶端利用webClient實現與Web服務端的資料轉送

來源:互聯網
上載者:User

標籤:winform   style   http   檔案   資料   類   

由於項目需要,最近研究了下WebClient的資料轉送。關於WebClient介紹網上有很多詳細介紹,大概就是利用WebClient可以實現對Internet資源的訪問。無外乎用戶端發送請求,服務端處理請求、回應請求。所以,我下面就簡單描述下學習過程中遇到的一些問題:

1.關於Winform用戶端請求

WebClient wc = new WebClient();//初始化webclientstring path = "http://192.168.1.115:8089/Handler1.ashx";Uri uri = new Uri(path + "?RequestType=uploaddata");string str="Requestdata";wc.UploadStringAsync(uri, str);

關於此處的UploadStringAsync方法,WebClient下有多個方法,UploadStringAsync是非同步呼叫,伺服器響應後會有一個回呼函數,可以在回呼函數裡查看服務端返回來的資訊。如下

void client_UploadStringCompleted(object o, UploadStringCompletedEventArgs e) {    if (e.Error == null)    {     if (e.Result == "ok")         this.DialogResult = DialogResult.OK;     else         MessageBox.Show("相應處理", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);    } }

但是client_UploadStringCompleted事件提前註冊。

2.關於Web服務端處理請求

用戶端發出了請求,如果請求的Url沒有問題的話,服務端就會收到請求,這裡注意到,之前請求的Url中有一個Handler1.ashx(一般處理常式),用來處理用戶端發出的請求。這樣Web服務端就可以直接在事件處理檔案中處理請求資訊,不需有前台頁面。

      public void ProcessRequest(HttpContext context)        {            if (context.Request["RequestType"] == "uploaddata")            {                context.Response.ContentType = "text/plain";                context.Response.Write("ok");            }         }

在if中可以對請求進行處理,然後向用戶端發出響應的回應。

3.關於報錯之“遠程伺服器返回錯誤(500):內部伺服器錯誤”

之前在做簡易用戶端與服務端互動string類型的資料時並沒有遇到這個問題,但是後來研究伺服器如何向用戶端返回datatable或者dataset資料時(一般在程式中都是要用到,程式基本不可能只有string資料互動),發現總是報這個錯,查了一上午的資料,也沒有解決自己的問題,網上的解決辦法有很多種,例如:遠程伺服器是否更改了檔案,遠程伺服器沒有許可權諸如此類,總之是服務端的問題,但是服務端的什麼問題,由於沒有辦法測試服務端(因為Web服務端發布了的,這樣winform端才能訪問),所以一直不知道怎麼解決。下午上班時,突然想到是不是自己的代碼有問題。就在另一個程式上測試了自己的代碼,發現文法上沒問題,但是邏輯上有問題。這才終於解決了困擾自己的問題。之後再遇到這樣的問題,首先就會去想是否代碼問題,若不是,再翻閱相關資料進行查詢。

以上均為自己的拙見,若有不對,敬請批評指正。歡迎交流。(後期應該會繼續更新)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.