Asp.net HTTP提交xml資料,帶身分識別驗證

來源:互聯網
上載者:User

一、背景介紹

      公司最近上了一套PLM系統,是美國PTC的,大名鼎鼎的。由於內部業務等方面要實現PLM系統和其他原有系統的資料互動。目前PLM官方提供的解決方案是通過excel匯入匯出進行資料互動,但考慮到即時性,效率,便捷性等方面,否決掉了這個方案。最初打算採用Webservice的方式,在FlexPLM裡面搭建webservice,但官方又給了回應,他們所有的二次開發還從未用到過Webservice,所以實現有難度。最後沒辦法,終於提出了第三套解決方案,通過HTTP協議提交資料,調用API互動資料。

     可能有人問問什麼不直接操作資料庫?額。。。。。。對於一個操作會涉及18張表的資料庫系統,解析相當困難,還是乖乖用API吧,雖然實現起來看似繞了很多彎子,但沒辦法,老美的軟體設計思想和我們就是有差距的。

二、ASP.Net端(發送請求端實現)

  ①準備XML格式,發送端,接收端協定好xml格式就行,這裡省略....

  ②代碼實現

     protected string SendRequestwhy(string strXML)
{
string str = "";
//雙方協定的XML格式
Encoding encoding = Encoding.UTF8;
//接收頁面        string strUrl = "http://192.168.0.46:8008/Windchill/rfa/jsp/material/gateway.jsp";

byte[] data = encoding.GetBytes(strXML);
//準備請求...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
myRequest.Method = "POST";
myRequest.ContentType = "text/xml;charset=utf-8";
myRequest.ContentLength = data.Length;
//身份認證,特別注意,參數使用者名稱,密碼
NetworkCredential cred = new NetworkCredential("wcadmin", "wcadmin");
myRequest.Credentials = cred;
//在資訊要求標頭部加入驗證資訊,不然驗證不通過
myRequest.PreAuthenticate = true;
Stream newStream = myRequest.GetRequestStream();
//發送資料
newStream.Write(data, 0, data.Length);
newStream.Close();
WebResponse response = myRequest.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.UTF8);
str = sr.ReadToEnd();//接收傳回值,傳回值可以是xml
resStream.Close();
sr.Close();
return str;
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.