如何使用HttpClient发送java对象到服务器

网友投稿 531 2022-12-22


如何使用HttpClient发送java对象到服务器

这篇文章主要介绍了如何使用HttpClient发送java对象到服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、首先导入apache依赖的pom文件包

org.apache.httpcomponents

httpclient

二、创建JavaBean实体类对象

public class FulFillMent implements BaseModel {

/**

* shopify内部订单物理位置ID

*/

private Long location_id;

/**

* 运单号

*/

private String tracking_number;

/**

* 快递公司

*/

private String tracking_company;

/**

* shopify平台内部商品id

*/

private List line_items;

public Long getLocation_id() {

return location_id;

}

public void setLocahttp://tion_id(Long location_id) {

this.location_id = location_id;

}

public String getTracking_number() {

return tracking_number;

}

public void setTracking_number(String tracking_number) {

this.tracking_number = tracking_number;

}

public String getTracking_company() {

return tracking_company;

}

public void setTracking_company(String tracking_company) {

this.tracking_company = tracking_company;

}

public List getLine_items() {

return line_items;

}

public void setLine_items(List line_items) {

this.line_items = line_items;

}

}

三、这里封装一个上传到服务器的Utils工具类

package com.glbpay.ivs.common.util.https;

import com.alibaba.fastjson.JSON;

import org.apache.http.HttpEntity;

import java.io.InputStream;

import java.io.OutputStream;

import org.apache.http.client.ClientProtocolException;

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

import org.apache.http.util.EntityUtils;

import java.io.IOException;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

public class NewHttpClient {

public static String doPost(String url, Object myclass) {

CloseableHttpClient httpClient = HttpClientBuilder.create().build();

HttpPost posturl = new HttpPost(url);

String result = null;

String jsonSting = JSON.toJSONString(myclass);

StringEntity entity = new StringEntity(jsonSting, "UTF-8");

posturl.setEntity(entity);

posturl.setHeader("Content-Type", "application/json;charset=utf8");

// 响应模型

CloseableHttpResponse response = null;

try {

// 由客户端执行(发送)Post请求

+6 response = httpClient.execute(posturl);

// 从响应模型中获取响应实体

HttpEntity responseEntity = response.getEntity();

System.out.println("响应状态为:" + response.getStatusLine());

if (responseEntity != null) {

System.out.println("响应内容长度为:" + responseEntity.getContentLength());

System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));

return EntityUtils.toString(responseEntity);

}

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

// 释放资源

if (httpClient != null) {

httpClient.close();

}

if (response != null) {

http:// response.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

return null;

}

public static String dourl(String url,Object clzz){

try {

String jsonString = JSON.toJSONString(clzz);

URL url1 = new URL(url);

HttpURLConnection conn = (HttpURLConnection) url1.openConnection();

//设置允许输出

conn.setDoOutput(true);

//设置允许输入

conn.setDoInput(true);

//设置不用缓存

conn.setUseCaches(false);

conn.setRequestMethod("POST");

//设置传递方式

conn.setRequestProperty("contentType", "application/json");

// 设置维持长连接

conn.setRequestProperty("Connection", "Keep-Alive");

// 设置文件字符集:

conn.setRequestProperty("Charset", "UTF-8");

//开始请求

byte[] bytes = jsonString.toString().getBytes();

//写流

OutputStream stream = conn.getOutputStream();

stream.write(bytes);

stream.flush();

stream.close();

int resultCode=conn.getResponseCode();

if(conn.getResponseCode()==200){

InputStream inputStream = conn.getInputStream();

byte[] bytes1 = new byte[inputStream.available()];

inputStream.read(bytes1);

//转字符串

String s = new String(bytes);

System.out.println(s);

return s;

}else {

//获取响应内容

int code = conn.getResponseCode();

String responseMessage = conn.getResponseMessage();

System.out.println(code);

String s = String.valueOf(code);

return "响应状态码是:"+s+"响应内容是:======="+responseMessage;

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

}

开始调用

FulFillMentModel fulFillMentModel = new FulFillMentModel();

FulFillMent fulfillment = new FulFillMent();

fulfillment.setLocation_id(order.getLocationId());

fulfillment.setTracking_number(order.getTrackingNo());

fulfillment.setTracking_company(order.getChannelCode());

fulfillment.setLine_items(lineItemList);

fulFillMentModel.setFulfillment(fulfillment);

String url = String.format("https://%s:%s@stuushop-com.myshopify.com/admin/api/2019-07/orders/%s/fulfillments.json", settingModel.getAppKey(), settingModel.getPassword(), order.getLastOrderId());

logger.info("shopify平台请求地址:{},请求数据:{}", url, JsonUtils.bean2json(fulFillMentModel));

String s = NewHttpClient.doPost(url,fulFillMentModel);

logger.info("shopify平台返回数据:{}", JsonUtils.bean2json(s));


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot Logback日志记录到数据库的实现方法
下一篇:mybatis plus代码生成器配置过程解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~