A. 如何使用post請求發送xml數據 csdn
所以我一直跑在發送 XML 與郵政從 iPhone 應用程序-到目前為止,運氣不好的事搜索 web 一遍遍無 !
我在我的應用程序 KissXML,我發現非常簡單和有用當它來到出去 XML 響應-但相當對面將 XML 發送到伺服器時使用的......這里是我的連接和接收 XML 的方法。我試著把 NSString 包含只需我的 XML 請求進入身體的 POST 請求,但它不會工作按計劃進行。
-(void)prepareTransaction{
NSLog(@"FXSecondVC: preparing transaction...");
NSString *login = [[NSUserDefaults standardUserDefaults] stringForKey:@"kUsername"];
NSString *password = [[NSUserDefaults standardUserDefaults] stringForKey:@"kPassword"];
NSString *host = [[NSUserDefaults standardUserDefaults] stringForKey:@"kURLServer"];
NSURL *url = [[NSURL alloc] initWithString:host];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
[httpClient :login password:password];
[httpClient registerHTTPOperationClass:[AFKissXMLRequestOperation class]];
B. java代碼發送post請求,並接收xml文件。。。 發送請求時要帶參數
用ajax來發送,ajax返回的就是xml或者json.
C. JAVA POST xml請求
是的,就是將你的xml文本內容寫出去就好了,接收端接收到後解析xml 以取得參數名及值
D. JAVA以POST方式提交XML獲取返回值(返回格式為XML)
URL url = new URL(requestUrl);
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
httpUrlConn.setRequestMethod(「POST」);
OutputStream outputStream = httpUrlConn.getOutputStream();
outputStream.write(xml);
outputStream.close();
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 釋放資源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
E. Java實現一個HTTP基於xml的post請求 如何在struts2 action獲取
//用戶名校驗方法
//這個方法是用XMLHTTPRequest對象進行非同步數據交互
var xmlhttp;
function verify(){
//alert(xmlhttp.readyState);
//×××××××××readyState變更0.1.2.3.4
//1.使用dom的方式獲取文本框中的值
//是dom中獲取元素節點的一種方法一個元素節點對應hrml中的一個標簽,如果<input>.value可以獲得一個元素節點的value屬性值
//注意取值.value;否則前台取不到本想取到的值
var userName = document.getElementById("userName").value;
//2.創建xmlhttpRequest對象
//需要針對不同瀏覽器建立不同的代碼
//Window.XMLHttpRequest盡量放置在window.ActiveXObject之前
if(window.XMLHttpRequest){
//針對firefox,mozillar,opera,safari,ie7,ie8
xmlhttp = new XMLHttpRequest();
//修正mozillar瀏覽器的bug語句
if (xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType("text/xml");
}
}else if(window.ActiveXObject){
//針對的是ie6,ie5.5,ie5
//兩個可以用於創建XMLHTTPRequset對象的控制項名稱,保存在一個js的數組中
//排在前面的版本較新
var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for (var i = 0;i<activexName.length;i++){
try{
//取出一個控制項的名進行創建,如果創建成功就停止循環
//如果創建失敗,會拋出異常,然後可以繼續循環,繼續嘗試創建
xmlhttp = new ActiveXObject(activexName[i]);
break;
}catch(e){
}
}
//確認XMLHTTPRequest對象創建成功
}
if (!xmlhttp){
alert("XMLHttpRequest對象創建失敗!!");
return;
}else{
alert("xmlhttp");
}
//2.注冊回調函數
//注冊回調函數時候,只需要函數名,不要加括弧
xmlhttp.onreadystatechange = callback;
////3.設置鏈接信息
////第一個參數表示http的請求方式,支持所有的http請求方式,主要使用個體和post方法
////第二個參數表示請求的url地址,get方式請求的參數也在url中
////第三個參數表示採用非同步還是同步交互方式,true表示非同步
//xmlhttp.open("GET","AJAXXMLServer?name=" + userName,true);
//post請求方式的代碼
xmlhttp.open("POST","AJAXXMLServer",true);
//post方式需要自己設置http請求頭
xmlhttp.setRequestHeader("Content-Tpye","application/x-www-form-urlencoded");
//post方式發送數據
xmlhttp.send("name= " + userName);
////4.發送數據,開始和伺服器端進行交互
////同步方式下,send這句話在伺服器端數據回來後才執行
////非同步方式下,send這句話會立即完成執行
////get方式下的要發送數據都已經在url中了。因此不需要在詞單獨send內容了
//xmlhttp.send(null);
}
//回調函數
function callback(){
//5.接收響應數據
//判斷對象的狀態是交互完成的即為4
if (xmlhttp.readyState == 4){
//判斷http的交互是否成功
if (xmlhttp.status == 200){
//使用responseXML的方式來接受xml數據的dom對象
var domObj = xmlhttp.responseXML;
//<message>是文本信息</message>
//dom利用getElementsByTagName可以根據標簽來獲取元素節點。返回的是一個數組
var messageNodes = domObj.getElementsByTagName("message");
if (messageNodes.length > 0){
//獲取message節點中的文本內容
//註:無效取值用法:::var responseMessage = messageNodes[0].innerHTML;
//首先messaNodes[0]獲取的的是message標簽所獲取的文本信息,即元素節點。
//message標簽中的文本在dom中是message標簽所對應的元素節點的子節點,firstChild可以獲取當前節點的第一個子節點
//通過以下方式就可以獲取到文本內容多對應的節點
var textNode = messageNodes[0].firstChild;
//對於文本節點來說,可以通過nodeValue的方式返迴文本節點的文本內容
var responseMessage = textNode.nodeValue;
alert("-----------------");
//將數據顯示在頁面上
//通過dom的方式找到div標簽所對應的元素節點
var divNode = document.getElementById("result");
//alert(divNode);
//設置元素節點中的html內容
divNode.innerHTML = responseMessage;
}else{
alert("XML數據格式錯誤,原始文本內容為"+ xmlhttp.responseText);
}
}else{
alert("出錯了!");
}
}
}
這樣返回的是一個數據,你看看對你修改成返迴文件有沒有用
F. 本地模擬發送post請求,XML該怎麼傳
需要導入dom4j.jar
importjava.io.BufferedOutputStream;
importjava.io.ByteArrayOutputStream;
importjava.io.DataInputStream;
importjava.io.IOException;
importjava.io.UnsupportedEncodingException;
importjava.net.URL;
importjava.net.URLConnection;
importorg.dom4j.Document;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;
importorg.dom4j.io.OutputFormat;
importorg.dom4j.io.XMLWriter;
publicclassTest0{
/**
*創建XML格式報文
*
*@return
*/
publicDocumentbulidContent(){
//模擬jsp格式新建xml
Documentdoc=DocumentHelper.createDocument();//創建一個document對象
Elemente1=doc.addElement("HTML");//創建一個html標簽
Elemente2=e1.addElement("HEAD");//在html標簽下創建一個head標簽
Elemente3=e2.addElement("title");//在head標簽下創建一個title標簽
e3.setText("xml測試");//title標簽內容為"xml測試"
Elemente4=e1.addElement("BODY");//在html標簽下創建一個body標簽
Elemente5=e4.addElement("div");//在BODY標簽下創建一個div標簽
e5.setText("第一個div");//div內容為"第一個div"
e5=e4.addElement("div2");//在BODY標簽下創建一個div標簽(第一個div後面,標簽名為div2)
//以下相同
e5.setText("第2個div");
e5=e4.addElement("table");
e5.setText("第一個table");
returndoc;
}
/**
*解析XML
*
*@paramdoc
*@return
*/
publicStringAnalysisXML(Documentdoc){
//使用流的方式解析
Stringcontent="";
try{
ByteArrayOutputStreamout=newByteArrayOutputStream();
OutputFormatformat=OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
XMLWriterwriter=newXMLWriter(out,format);
writer.write(doc);
content=out.toString("GBK");
System.out.println(content);
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
returncontent;
}
/**
*發送請求
*
*@paramSendUrl
*請求URL
*@paramxmlData
*發送XML報文
*@return
*@throwsException
*/
publicstaticStringsendData(StringSendUrl,StringxmlData)
throwsException{
StringSERVER_URL=SendUrl;
URLuploadServlet=newURL(SERVER_URL);
=uploadServlet.openConnection();
servletConnection.setUseCaches(false);
servletConnection.setDoOutput(true);
servletConnection.setDoInput(true);
BufferedOutputStreamoutput=newBufferedOutputStream(servletConnection.getOutputStream());
output.write(xmlData.getBytes("GBK"));
output.close();
try{
DataInputStreaminput=newDataInputStream(servletConnection.getInputStream());
ByteArrayOutputStreambyteOut=newByteArrayOutputStream();
byte[]buffer=newbyte[8192];
inti=0;
while((i=input.read(buffer))!=-1){
byteOut.write(buffer,0,i);
}
StringdataString=newString(byteOut.toByteArray(),"GBK");
input.close();
returndataString;
}catch(Exceptione){
System.out.println("數據已經發送,但沒有返回結果!");
e.printStackTrace();
throwe;
}
}
}
G. java中怎麼在web.xml中處理post請求亂碼問題
處理的辦法太多了,覺得你的出發點錯了,你的先判斷出出現亂碼的原因是啥
出現亂碼的地方和原因有很多種,最重要的一種就是字元編碼格式不統一導致的,然後你就得看哪裡轉換的時候不一致,然後再調整。。。
H. java用http協議post請求發送xml文件 怎麼都是請求失敗 誰能給個demo我么
你的代碼是如何的、報什麼錯,,,,,,,環境有什麼要求的呢
I. 在java中如何實現http/post/xml發送數據報文麻煩高手賜教!
stringBuilder拼接成一個XML字元串。然後調用HTTP類訪問一個SERVLET,(具體HTTP類我記不清楚了。你們應用里如果有人開發過。你可以抄一抄),之後會獲得一個返迴流,這個流就是XML。再使用DOM4J或者JDOM解析。