`
dwlovehcy
  • 浏览: 33236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Content-Type: application/x-www-form-urlencoded

阅读更多

接受第三方的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());
				}
		    	
		    	
		    }

 

 

 

分享到:
评论
1 楼 跳跃的心灵 2014-08-31  
如果设置了Content-Type: application/x-www-form-urlencoded,去parmmeterMap中间去取吗,不知道还有别的方法没有,感觉这样取有点别扭

相关推荐

    调用pb开发的webserver(HTTP POST)

    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" Content-Type 是 HTTP 协议中的一个 header 字段,用于指示返回消息的 MIME 类型。它是服务器响应消息中非常重要的内容,表明后面的文档属于什么 MIME 类型。Content-Type 的格式为:Content-Type: ...

    浅析application/x-www-form-urlencoded和multipart/form-data的区别

    在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....

    sqlifuzzer.rar

    Content-Type: application/x-www-form-urlencoded Content-Length: 62 Cookie: PHPSESSID=bf7u0ad95cbubpcvdjda2bqro3; Loggedin=True; EliteNinja=False module=Home&action=UnifiedSearch&search_form=false&...

    APISpace 语音通知 API接口 PHP调用示例代码

    - `Content-Type:application/x-www-form-urlencoded` 表明请求体的数据格式是 URL 编码的。 - `mobile` 参数是接收语音通知的电话号码,`templateId` 是预设的语音消息模板 ID,`param` 可以用来传递模板中需要的...

    yxpjqrj.rar

    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 ...

    http协议基础教程

    - **Content-Type**:`Content-Type: application/x-www-form-urlencoded` 定义了请求体中的数据格式。 - **Content-Length**:`Content-Length: 40` 指明了请求体的长度。 - **请求体**:`name=Professional%20Ajax...

    APISpace 银行卡三要素标准版 API接口 PHP调用示例代码

    "Content-Type:application/x-www-form-urlencoded" ), )); $response = curl_exec($curl); $err = curl_error($curl); // 错误处理 if ($err) { echo "cURL Error #:" . $err; } else { // 打印API返回的结果...

    记一次BIGIP Configuration Utility渗透.pdf

    Content-Type: application/x-www-form-urlencoded Content-Length: 168 {"bigipAuthCookie": "", "username": "admin", "loginReference": {"link": "/shared/gossip"}, "userReference": {"link": ...

    ContentType大全

    - `application/x-www-form-urlencoded`:表单数据的默认编码类型 - `multipart/form-data`:用于上传文件的表单数据编码类型 - `text/xml` 或 `application/xml`:XML文档 - `application/xhtml+xml`:XHTML文档 ...

    HTTP消息头详解.docx

    - 示例:`Content-Type: application/x-www-form-urlencoded; charset=UTF-8` - 可选编码类型包括`application/x-www-form-urlencoded`以及`multipart/form-data`等。 #### 三、常用的HTTP响应头 1. **Content-...

    常见的四种POST 提交数据方式(小总结)

    `application/x-www-form-urlencoded`适合简单的键值对数据,`multipart/form-data`适用于文件上传,而`application/json`和`application/xml`则更适合复杂的数据结构和前后端之间结构化的数据交换。在实际开发中,...

    Python常见四种Post请求数据1

    如果使用Fiddler模拟请求,可以在“RequestBody”区域输入格式化后的数据,并在“Headers”中设置`Content-Type: application/x-www-form-urlencoded`。 2. **application/json**: 当需要传输JSON格式的数据时,应...

    curl-7.72.0.zip

    curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "username=admin&password=123456" http://example.com/login ``` 4. **上传文件**:使用`-T`选项可以上传本地文件至FTP服务器: ```...

    APISpace 全国快递查询 API接口 PHP调用示例代码

    "Content-Type: application/x-www-form-urlencoded" ), )); // 执行 cURL 请求 $response = curl_exec($curl); // 检查 cURL 是否有错误 $err = curl_error($curl); // 关闭 cURL 连接 curl_close($curl); //...

    python爬虫实现POST request payload形式的请求

    而在POST请求中,数据会以`application/x-www-form-urlencoded`的Content-Type编码格式出现在请求体中。例如,前端JavaScript可以使用以下方式设置请求: ```javascript var xhr = new XMLHttpRequest(); xhr.open...

    VC通过Http协议Get或Post方式与WebService通信,解析返回的Json

    iMyHttp.RequestJsonInfo((LPCTSTR)m_strUrl,Hr_Post,"Content-Type:application/x-www-form-urlencoded",strData,m_nTimeOut); if (!MyHttp.ParseJsonInfo()) { return OutPutFailInfo(MyHttp.GetErrInfo()); ...

Global site tag (gtag.js) - Google Analytics