1.xml字符串解析成json

pom:

 	<dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>xom</groupId>
            <artifactId>xom</artifactId>
            <version>1.2.5</version>
        </dependency>

java:

import net.sf.json.JSON;
import net.sf.json.JSONSerializer;
import net.sf.json.xml.XMLSerializer;

 		String   returnStr = post.getResponseBodyAsString();
            XMLSerializer xmlSerializer = new XMLSerializer();
            JSON json = xmlSerializer.read(returnStr);

            JSONObject jsonObject =JSONObject.parseObject( json.toString());

2.clientpost提交

(1)requestbody字符串xmlStr
java:

import net.sf.json.JSON;
import net.sf.json.xml.XMLSerializer;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpMethodParams;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;

import java.net.URLEncoder;

	    HttpClient client = new HttpClient();
            PostMethod post = new PostMethod(requestUrl);
            post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
            RequestEntity entity = new StringRequestEntity(xmlStr,"application/xml","UTF-8");
            post.setRequestEntity(entity);
            client.executeMethod(post);
            String   returnStr = post.getResponseBodyAsString();

(2)参数是key-value

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;


import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

		HttpClient client = new HttpClient();
        	PostMethod post = new PostMethod(surl);
        	post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
    
		post.setParameter("method", method); // 接口API方法名,根据接口做相应
		post.setParameter("client_customerid", client_customerid); // 固定值
		post.setParameter("client_db", client_db);// 固定值
		post.setParameter("messageid", messageid);// 消息代码,根据接口做相应调整
		post.setParameter("apptoken", apptoken);
		post.setParameter("timestamp", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
		post.setParameter("appkey", appkey);
		post.setParameter("sign", URLEncoder.encode(generateMd5(appSecret+JSONObject.toJSONString(xmldata)+appSecret),"UTF-8"));// URL编码
		post.setParameter("data", xmlStr);


		client.getHttpConnectionManager().getParams().setConnectionTimeout(200 * 100);
		// 设置读取数据的超时时间
		client.getHttpConnectionManager().getParams().setSoTimeout(6000 * 10);
		client.executeMethod(post);
		String  returnStr = post.getResponseBodyAsString();

3.RestTemplate提交

(1)HttpEntity是字符串

	String str = body;
        RestTemplate client = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        client.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));

        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_JSON);
        //将请求头部和参数合成一个请求

	LinkedMultiValueMap link = new LinkedMultiValueMap();
	link .add("sign","xxxxx");
	link .add("timestamp","xxxxx");
	link .add("appkey","xxxxx");
        UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url ).queryParams(link );

        //执行HTTP请求,将返回的结构使用ResultVO类格式化
        try
        {
            body= URLEncoder.encode(body, "UTF-8");
        }
        catch (UnsupportedEncodingException e)
        {
            throw new RuntimeException(e);
        }
        String  response =client.postForObject( builder.toUriString(), new HttpEntity<>(body,headers)  , String.class );

(2)HttpEntity是对象

HttpHeaders headers = new HttpHeaders();
headers.add(Authorization_Key,token);
HttpEntity<User> entity = new HttpEntity<>(obj,  headers);
ResponseEntity<ResponseModel> m= template.postForEntity(url,entity,ResponseModel.class);
posted on 2022-05-16 18:04  xc川  阅读(0)  评论(0)    收藏  举报