接受第三方的post过来的xml,如果没有设置Content-Type: application/x-www-form-urlencoded。则可以通过流来解析
代码如下
BufferedReader in= new BufferedReader(new InputStreamReader(httpServletRequest.getInputStream()));
String s="";
StringBuffer sb=new StringBuffer();
while((s=in.readLine())!=null){
sb.append(s);
}
// dom解析xml
DocumentBuilderFactory buildFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder build = buildFactory.newDocumentBuilder();
Document document = build.parse(httpServletRequest.getInputStream(),"utf-8");
NodeList nodelist = document.getElementsByTagName("MO");
for (int i = 0; i < nodelist.getLength(); i++) {
longcodeArray.add(document.getElementsByTagName("LongCode").item(i).getFirstChild().getNodeValue().substring(1));
messageArray.add(document.getElementsByTagName("Message").item(i).getFirstChild().getNodeValue());
}
如果设置了Content-Type: application/x-www-form-urlencoded 则需要去parmmeterMap中间去取
List<String> longcodeArray=new ArrayList<String>();
List<String> messageArray=new ArrayList<String>();
try {
CreateLog log = new CreateLog();
HttpServletRequest httpServletRequest = this.getHttpServletRequest();
String keyandValue="";
String key="";
String value="";
Iterator<String> it=httpServletRequest.getParameterMap().keySet().iterator();
while(it.hasNext()){
key=it.next();
value = ((Object[])(httpServletRequest.getParameterMap().get(key)))[0].toString();
keyandValue=key+"="+value;
System.out.println(key+"= "+value);
}
if(keyandValue!=null){
//dom4j来解析xml字符串
Document document=DocumentHelper.parseText(keyandValue.toString());
Element root=document.getRootElement();
List mo=root.elements("MO");
for(int i=0;i<mo.size();i++){
Element longcode=((Element)mo.get(i)).element("LongCode");
Element message=((Element)mo.get(i)).element("Message");
longcodeArray.add(longcode.getText());
messageArray.add(message.getText());
}
}
分享到:
相关推荐
Content-Type: application/x-www-form-urlencoded Content-Length: length ll_a=string&ll_b=string*/ /*获取结果 HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length ...
"Content-Type" Content-Type 是 HTTP 协议中的一个 header 字段,用于指示返回消息的 MIME 类型。它是服务器响应消息中非常重要的内容,表明后面的文档属于什么 MIME 类型。Content-Type 的格式为:Content-Type: ...
在Web开发中,当涉及到通过HTTP协议向服务器发送POST请求时,我们经常需要选择不同的数据编码类型,主要是`application/x-www-form-urlencoded`和`multipart/form-data`。这两种编码方式各有其适用场景,主要取决于...
Content-Type: application/x-www-form-urlencoded Content-Length: 200 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Host: bbs....
Content-Type: application/x-www-form-urlencoded Content-Length: 62 Cookie: PHPSESSID=bf7u0ad95cbubpcvdjda2bqro3; Loggedin=True; EliteNinja=False module=Home&action=UnifiedSearch&search_form=false&...
- `Content-Type:application/x-www-form-urlencoded` 表明请求体的数据格式是 URL 编码的。 - `mobile` 参数是接收语音通知的电话号码,`templateId` 是预设的语音消息模板 ID,`param` 可以用来传递模板中需要的...
Content-Type: application/x-www-form-urlencoded UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) Host: entry.yeah.net Content-Length: 738 ...
- **Content-Type**:`Content-Type: application/x-www-form-urlencoded` 定义了请求体中的数据格式。 - **Content-Length**:`Content-Length: 40` 指明了请求体的长度。 - **请求体**:`name=Professional%20Ajax...
"Content-Type:application/x-www-form-urlencoded" ), )); $response = curl_exec($curl); $err = curl_error($curl); // 错误处理 if ($err) { echo "cURL Error #:" . $err; } else { // 打印API返回的结果...
Content-Type: application/x-www-form-urlencoded Content-Length: 168 {"bigipAuthCookie": "", "username": "admin", "loginReference": {"link": "/shared/gossip"}, "userReference": {"link": ...
- `application/x-www-form-urlencoded`:表单数据的默认编码类型 - `multipart/form-data`:用于上传文件的表单数据编码类型 - `text/xml` 或 `application/xml`:XML文档 - `application/xhtml+xml`:XHTML文档 ...
- 示例:`Content-Type: application/x-www-form-urlencoded; charset=UTF-8` - 可选编码类型包括`application/x-www-form-urlencoded`以及`multipart/form-data`等。 #### 三、常用的HTTP响应头 1. **Content-...
`application/x-www-form-urlencoded`适合简单的键值对数据,`multipart/form-data`适用于文件上传,而`application/json`和`application/xml`则更适合复杂的数据结构和前后端之间结构化的数据交换。在实际开发中,...
如果使用Fiddler模拟请求,可以在“RequestBody”区域输入格式化后的数据,并在“Headers”中设置`Content-Type: application/x-www-form-urlencoded`。 2. **application/json**: 当需要传输JSON格式的数据时,应...
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "username=admin&password=123456" http://example.com/login ``` 4. **上传文件**:使用`-T`选项可以上传本地文件至FTP服务器: ```...
"Content-Type: application/x-www-form-urlencoded" ), )); // 执行 cURL 请求 $response = curl_exec($curl); // 检查 cURL 是否有错误 $err = curl_error($curl); // 关闭 cURL 连接 curl_close($curl); //...
而在POST请求中,数据会以`application/x-www-form-urlencoded`的Content-Type编码格式出现在请求体中。例如,前端JavaScript可以使用以下方式设置请求: ```javascript var xhr = new XMLHttpRequest(); xhr.open...
iMyHttp.RequestJsonInfo((LPCTSTR)m_strUrl,Hr_Post,"Content-Type:application/x-www-form-urlencoded",strData,m_nTimeOut); if (!MyHttp.ParseJsonInfo()) { return OutPutFailInfo(MyHttp.GetErrInfo()); ...