HTTP+XML方式介面資料傳輸
一.客戶端
2.傳送請求資料
{
組裝報文格式傳送資訊
StringBuffer sendStr = new StringBuffer(1024);
sendStr.append("<?xml version=/"1.0/" encoding=/"GBK/"?>");
sendStr.append("<operation_in type=/"struct/">");
sendStr.append("<service_name type=/"string/">RDMP_ToDoTaskQuery</service_name>");
sendStr.append("<sysfunc_id type=/"int/">61590334</sysfunc_id>");
sendStr.append("<request_type type=/"int/">1002</request_type>");
sendStr.append("<verify_code type=/"string/">789730661774598915448481</verify_code>");
sendStr.append("<operator_id type=/"string/">"+operator_id+"</operator_id>");
sendStr.append("<organ_id type=/"int/">0000000</organ_id>");
sendStr.append("<request_time type=/"datetime/">"+System.currentTimeMillis()/1000+"</request_time>");
sendStr.append("<request_seq type=/"long/"></request_seq>");
sendStr.append("<request_source type=/"int/">304061</request_source>");
sendStr.append("<request_target type=/"int/">201024</request_target>");
sendStr.append("<msg_version type=/"string/">0100</msg_version>");
sendStr.append("<cont_version type=/"string/">0100</cont_version>");
sendStr.append("<content type=/"string/">");
sendStr.append("<![CDATA[");
sendStr.append("<?xml version=/"1.0/" encoding=/"GBK/"?>");
sendStr.append("<request type=/"struct/">");
sendStr.append("<operator_id>"+operator_id+"</operator_id>");
sendStr.append("</request>");
sendStr.append("]]>");
sendStr.append("</content>");
sendStr.append("</operation_in>");
傳送報文格式傳送資訊
URL url = null;
HttpURLConnection conn = null;
try{
//HTTP的請求URL
url = new URL(http://10.46.34.233/fcgi-bin/UIG_SFC_186);
conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("Pragma:", "no-cache");
conn.setRequestProperty("Content-Type", "text/xml;charset=GBK");
//HTTP的POST方式進行資料傳輸
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
OutputStream dataOut = conn.getOutputStream();
StringBuffer sendStr = new StringBuffer(1024);
dataOut.write(content.getBytes());
dataOut.write(sendStr.toString().getBytes());
dataOut.flush();
dataOut.close();
//獲取響應內容
try{
conn.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
//注意BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"GBK")); 這麼寫,是因為有時候網路傳輸過程中字元會被修改,如GB-2312,因為出現亂碼,就需要將此處加入GBK。
//loger.info("獲取預設字元編碼:"+Charset.defaultCharset());
String line = "";
StringBuffer buffer = new StringBuffer(1024);
while((line=in.readLine())!=null){
buffer.append(line);
}
in.close();
result = buffer.toString();
//獲取到的回饋資訊:+result+結果集。
}catch(IOException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}catch(Exception e){
e.printStackTrace();
}
}
二.伺服器端
2.獲取監聽到的內容
{
BufferedReader inputStream = new BufferedReader(new InputStreamReader(request.getInputStream()));
StringBuffer buffer = new StringBuffer(1024);
String line = "";
String isSuccessed;
while((line=inputStream.readLine()) != null)
{
buffer.append(line);
}
String result = buffer.toString();
loger.info("獲取監聽到的內容:"+result);
WorkProcessContent workContent = new WorkProcessContent();
//監聽內容
if(!result.equals(""))
{
//進行業務處理
StringReader reads = new StringReader(result.toString());
InputSource sources = new InputSource(reads);
SAXBuilder sax = new SAXBuilder();
try {
Document doc = sax.build(sources);
Element root =doc.getRootElement();
String content = root.getChildText("content");//得到資料TEST
StringReader readesh= new StringReader(content.toString());
InputSource sourcere= new InputSource(readesh);
SAXBuilder resb = new SAXBuilder();
Document redoc = resb.build(sourcere);
//得到根節點
Element taskinfos = redoc.getRootElement();
List listAttachInfo = taskinfos.getChildren();
for (int i = 0; i < listAttachInfo.size(); i++)
{
Element taskinfo = (Element) listAttachInfo.get(i);
String task_id = taskinfo.getChildText("task_id");
.........
}
}
}
相關推薦
HTTP+XML方式介面資料傳輸
一.客戶端 2.傳送請求資料 { 組裝報文格式傳送資訊 StringBuffer sendStr = new StringBuffer(1024); sendStr.append("<?xml version=/"1.0/" encoding=/"GB
使用python2實現http multipart/form-data資料傳輸
Python3貌似有比較方便的方式,Python2得自己寫點程式碼。 程式碼基本上參考了一位仁兄釋出在github上的程式碼,但是找不到他的連結了,對不住。不過他的程式碼貌似跑不過,我這裡做了修改後,釋出在這裡,希望對後來人有幫助。 其實最重要的還是要了解http有關這部分
java 使用 okhttp傳送http請求獲取介面資料
為什麼需要使用okhttp: 目前我們學習的所有中只有html中的超連結和form表單才可以傳送http請求,另外一個就是ajx非同步傳送http請求獲取資料。 但是在實際開發需求中
例項:Netty 基於Http協議下的資料傳輸Demo
Http/Https協議是最重要最常用到的協議之一,Netty提供了一些了的Handler來處理Http協議下的編碼工作。下面就介紹一個Netty例項: 1.通過HttpClient傳送Protobuf型別資料到服務端 2.服務端Netty負責把接收到的Http請求中的資料
微控制器使用HTTP POST方式傳送資料
HTTP請求是依賴TCP的,也就是在微控制器上面,我們一樣可以使用,無非就是先發送一個http請求頭,再發送正文,比如我最近就使用了http post方式傳送資料到伺服器,伺服器端使用的是WEB API,微控制器使用的STM32 與SIM800C,SIM800C使用GPRS連
XML和資料庫--資料傳輸
內容:目錄 1.0 簡介 本論文簡要的探討了XML和資料庫之間的關係,同時列出一些可以使用資料庫處理XML文件的軟體。雖然這裡不打算詳盡地介紹這些軟體,但是筆者希望它能夠描述使用資料庫處理XML文件中的主要部分。這裡有點偏向與關係資料庫,因為我的經驗如此。 在開始討論XML和資料庫之前,我們需要回答一個
工業相機常見的資料傳輸介面方式
CVBS、VGA、 DVI 、 HDMI 、 SDI、GigE、USB3.0、Cameralink、HSLink、CoaXPress 目前在視訊會議領域CVBS、VGA、DVI、HDMI、SDI使用最廣泛 在廣播電視領域CVBS、HDMI、SDI使用最廣泛,在安防領域
http協議基礎(三)幾種資料傳輸方式
說說http協議的一些特點: 1)無狀態 http協議是一種自身不對請求和響應之間的通訊狀態進行儲存的協議,即無狀態協議。 這種設定的好處是:更快的處理更多的請求事務,確保協議的可伸縮性 不過隨著web的不斷髮展,有時候,需要將這種狀態進行保持,隨即,就引入了cookie技術,cookie技術通過在請
Http使用post方式提交資料(使用java標準介面)
本文內容:使用java標準介面,實現http用post方式提交資料。 ------------------------------------------------------------------------------------------------------
Http使用post方式提交資料(使用apache標準介面)
本文:目的和前一篇一樣,唯一區別是本文用apache標準介面進行http的post提交資料,而前一篇是用 java標準介面實現。 ------------------------------------------------------------------------
介面技術第六章——輸入輸出介面及資料傳輸控制方式總結
正在學習介面技術和計算機組成原理,中間有一些重疊的部分就放在一起了,至於DMA,中斷之類的會放在後面講解 6.1 介面綜述 硬體介面通常稱為I/O介面,把外圍裝置同微型計算機連線起來的電路稱為外設介面電路,簡稱外設介面。I/O介面是CPU同外界進行資訊交換的中轉站 使用介面的原因 速度不匹配 外設
php 獲取xml介面資料的處理
xml格式返回的是資料一般是這樣的,但也有不同: <?xml version="1.0" encoding="gbk"?> <root> <head> <actdate>20170805</actdate
資料傳輸方式(並行/序列通訊;同步/非同步;單工、半雙工、全雙工)
資料傳輸主要有三種不同的劃分方式。 並行/序列通訊; 同步/非同步傳輸; 按資料的不同傳輸方向可分為單工、半雙工、全雙工。 1.並行通訊和序列通訊 (1)並行通訊 並行通訊是同時傳送資料的各個位進行傳送or接收的通訊方式。 傳輸率比序列介面快8倍,理論值為1Mbits/s. 傳輸的資訊不
Http方式介面post呼叫工具 HttpUtil
工作中有時候需要呼叫外部的介面,通過http方式呼叫,記錄一下這個工具類。 public class HttpUtil { private static Logger log = LoggerFactory.getLogger(HttpUtil.class); private f
從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之十二 || 三種跨域方式比較,DTOs(資料傳輸物件)初探
更新反饋 1、博友@童鞋說到了,Nginx反向代理實現跨域,因為我目前還沒有使用到,給忽略了,這次記錄下,為下次補充。 程式碼已上傳Github+Gitee,文末有地址 今天忙著給小夥伴們提出的問題解答,時間上沒把握好,都快下班了,趕緊釋出:書說上文《從壹開始前
java 對接webapi介面資料提交方式之 application/x-www-form-urlencoded
Content-Type: application/x-www-form-urlencoded;charset=utf-8 這應該是最常見的 POST 提交資料的方式了。瀏覽器的原生 form 表單,如果不設定 enctype 屬性,那麼最終就會以 application/x-www
資料傳輸的三種交換方式
電路交換,報文交換,分組交換首先我們來看看三種交換方式的示意圖對照上面的圖,給出三種交換方式在資料傳輸階段的主要特點:電路交換:整個報文的位元流連續的從源點直達終點,好像在一個管道中傳送。報文交換:整個報文先傳輸到相鄰的結點,全部儲存下來後查詢轉發表,轉發到下一個結點
C#中如何通過HTTP協議的不同請求方式獲取資料
private string GetRequest(string url) { string content = ""; Uri httpURL = new Uri(url); ///Http
資料傳輸方式 « 關於網路那些事...
資料傳輸方式紀錄 資料傳輸常見Json, XML 的方式傳送,但這裡我們要說明的是在細節一點的格式傳輸方式 Byte 格式傳輸 一般各種格式的資料,傳輸前都必須轉為
基於WinInet的HTTP與HTTPS資料傳輸上傳與下載的對比總結
背景 之前就是用WinInet庫寫了HTTP檔案上傳和下載以及HTTPS檔案上傳和下載的小程式,現在,要特意寫一篇文章來總結HTTP和HTTPS之間檔案上傳和檔案下載之間的異同點。當然,本文只是從程式設計開發的角度進行總結,並不是從協議本身去比較。 參考文件和完整的文件和原