Java 通過httpClient Post方式提交xml,並從服務端返回資料
在通過http請求連線服務端程式時,有兩種方式httpClient這個不是標準的java庫,但是是開源專案,能夠快捷的開發,但如果做Android的開發,推薦使用httpUrlConnect這個工具。但是httpClient確實也是一個比較好用的工具。
這裡面只是做個demo,方便自己學習,也僅為大家做點參考。
客戶端程式碼:PostXml.java,但在之前需要匯入httpClient的包,可以去官網下,百度一下就能夠找到,將包新增到工程裡面。
package PostPager;
import java.io.IOException;
import java.util.ArrayList ;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache .http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache .http.params.CoreProtocolPNames;
import org.apache.http.util.EntityUtils;
public class PostXml {
static String xml = "<?xml version='1.0' encoding='UTF-8'?><group><name>周成林</name><age>22</age><Image>我們</Image></group>";
public static void main(String args[]) {
try {
CloseableHttpClient httpclient = HttpClients.createDefault();
System.out.println(xml);
HttpPost httpPost = new HttpPost("http://119.29.85.118//finance.php");
httpPost.addHeader("Content-Type","text/html;charset=UTF-8");
//解決中文亂碼問題
StringEntity stringEntity = new StringEntity(xml,"UTF-8");
stringEntity.setContentEncoding("UTF-8");
httpPost.setEntity(stringEntity);
//CloseableHttpResponse response = httpclient.execute(httpPost);
System.out.println("Executing request " + httpPost.getRequestLine());
// Create a custom response handler
ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
@Override
public String handleResponse(final HttpResponse response)
throws ClientProtocolException, IOException {//
int status = response.getStatusLine().getStatusCode();
if (status >= 200 && status < 300) {
HttpEntity entity = response.getEntity();
return entity != null ? EntityUtils.toString(entity) : null;
} else {
throw new ClientProtocolException(
"Unexpected response status: " + status);
}
}
};
String responseBody = httpclient.execute(httpPost, responseHandler);
System.out.println("----------------------------------------");
System.out.println(responseBody);
} catch (Exception e) {
System.out.println(e);
}
}
}
finance.php
服務但程式碼:
<?php
@header("Content-type: text/html; charset=utf-8");
$file_in = file_get_contents("php://input");
$request=simplexml_load_string($file_in);
foreach($request->children() as $childItem) {
//輸出xml節點名稱和值
echo $childItem->getName() . "->".$childItem."<br />";
//其他操作省略
}
$xml ="我們";
echo $xml;
?>
在這裡面有箇中文編碼的問題,全部設為UTF-8,一開始由於放鬆xml的方式中編碼沒有設定,預設不是UTF-8編碼,導致中文一直有問題。
最後的輸出結果為:
name->周成林
age->22
Image->我們
我們
httpClient類中提供了很多方法,需要我們好好研究一波。
相關推薦
Java 通過httpClient Post方式提交xml,並從服務端返回資料
在通過http請求連線服務端程式時,有兩種方式httpClient這個不是標準的java庫,但是是開源專案,能夠快捷的開發,但如果做Android的開發,推薦使用httpUrlConnect這個工具。但是httpClient確實也是一個比較好用的工具。 這裡面
Java 通過HttpClient Post方式提交json,並從服務端返回json資料
直接上程式碼吧,和前面幾篇文章都差不多 java程式碼: package PostPager; import java.io.IOException; import java.io.InputStream; import java.io.Output
Java 通過HttpURLConnection Post方式提交json,並從服務端返回json資料
這個技術和xml差不過,主要是服務端程式碼稍微修改,客戶端程式碼修改部分傳遞引數就可以完成,但在之前需要匯入json所需要的jar包。 PostJson.java程式碼 package PostPager; import java.io.InputSt
java模擬表單上傳檔案,java通過模擬post方式提交表單實現圖片上傳功能例項
package com.zdz.httpclient;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.
QT5中實現多視窗切換,並從子視窗返回資料
該程式的功能:主窗口裡有兩個button和ltextEdit,按下下一頁button後彈出子視窗並隱藏主視窗,按下退出Button後退出程式。子視窗有文字框lineEdit和button,按下子視窗的
POST方式提交XML呼叫介面
當呼叫的介面越來越多的時候,我也深深的知道自己所見到的世面是越來越窄,之前一直沒有用過xml來傳輸介面引數,總之,該學習的還是要學習,無論是xml還是json還是什麼的,都是雙方約定好的一種傳輸協議,
httpclient通過POST來上傳檔案,而不是通過流的形式,並在服務端進行解析(通過httpmime.jar來操作)
1. 首先需要對應的JAR包 匯入 httpmime-4.1.1.jar。 package url; import io.IoStreamUtil; import java.io.File; import java.io.IOException; import jav
JAVA--通過DOM4J的方式讀取xml檔案簡單例項
程式碼如下: package com.xml.dom4j; import java.io.File; import java.util.Iterator; import java.util.List
httpclient通過POST來上傳文件,而不是通過流的形式,並在服務端進行解析 通過httpmime jar來操作
http jar包 localhost parser urn lex leo system methods 1. 首先需要對應的JAR包 導入 httpmime-4.1.1.jar。 package url; import io.IoStreamUtil
JAVA-通過介面讀取本地jar包,並呼叫其中實現了介面的類中的方法
URLClassLoader classLoader = new URLClassLoader(new URL[]{new URL("jar 本地路徑,例如:file:D:/project/inputsplit-1.0-SNAPSHOT.jar")}, Thread.currentThread().ge
Java 使用科大訊飛MSC SDK,在web服務端將文字合成語音,將pcm檔案轉為wav格式返回
本文講述的是使用科大訊飛MSC SDK將語文字合成語音,然後以web介面的形式把合成的音訊資料返回前端。 流程 1、接收介面引數傳入的要合成的資料 2、使用MSC SDK把資料合成*.pcm檔案 3、獲取wav檔案格式頭 4、將格式頭與檔案內容拼接
easyUI form提交與springMVC互動時服務端返回的錯誤處理
easyUI form的submit介面中沒有提供error回撥函式,網上一種解決方案是串聯.success(function(){}).error(function(){}),然後通過jqXHR進行統一處理;但是我發現這種方案不論服務端返回正確還是異常,都會呼叫.erro
javaweb網頁上傳圖片並顯示在頁面上,並在服務端存到磁碟(base64編碼解碼)
最後 服務端接收到頁面傳過來的全部的BASE64編碼後 public String uploadimgsave(String imagepath){ String url = ""; OutputStream os=null; String ImgPath="D:/img"; //檔案存放目
java中httpclent以post方式提交請求時,http返回碼是302重定向時,不自動跳轉的處理
場景: 介面A:請求地址為http://www.test.com/test 介面A的功能,會把接收到的引數url寫入到header的Location屬性中 在java中,使用httpclient傳送請求, 在以get方式傳送請求時,http的返回碼是200,自動處理了重定
Python 編寫通過post方式提交的接口測試代碼
urlencode nco 出現 第一次用 python 方式 pen 沒有 iterable 第一次用python編寫程序 是照著視頻裏編寫的 但是期間也出現了很多錯誤 視頻內用了是Python2 版本的 而我的是python 3版本的 寫這兩程序時就發現有很多不同
Multipart/form-data POST檔案上傳詳解 理論 簡單的HTTP POST 大家通過HTTP向伺服器傳送POST請求提交資料,都是通過form表單提交的,程式碼如下:
Multipart/form-data POST檔案上傳詳解 理論 簡單的HTTP POST 大家通過HTTP向伺服器傳送POST請求提交資料,都是通過form表單提交的,程式碼如下: <form method="post"action="http://w.soh
JAVA模擬post方式提交URL引數和body內json引數
package test.itsm; import java.io.IOException; import java.io.InputStream; import java.io.OutputStre
PB 通過http協議以POST方式將XML傳送到協議伺服器
------解決方案-------------------------------------------------------- Blob lblb_args String ls_header String ls_url String ls_args long ll_length integer li_r
window.open() POST 方式提交json資料,以及後臺的json序列化為物件
在匯出時候,ajax實現並不好處理,可以選擇用window.open()的方式,後臺框架選擇poi或者jxl即可,若不是太過複雜的匯出選擇jxls模板的方式最為方便。 但在處理複雜的匯出報表時候我選擇是用poi框架寫呼叫poiAPI的方式實現。window.open()傳遞
JAVA HttpURLConnection Post方式提交傳遞引數
public class HttpURLConnectionPost { /** * @param args * @throws IOException */ public static void main(String[] args) throws IO