由于HttpClient已经不能用了,这里说一下HttpURLConnection的post请求方法,将post请求的参数通过Gson转化为string。文章参考了其他网友的文档。
如下所示:
OrderModel.GoodsListBean goodsListBean = new OrderModel.GoodsListBean();
List<OrderModel.GoodsListBean> goodsList=
new ArrayList<>()
;
goodsListBean.
id = id
; goodsListBean.
goodsId = goodsId
;
goodsListBean.
price = price
; goodsList.add(goodsListBean)
;
OrderModel orderModle =
new OrderModel()
; orderModle.
userId = userId
; orderModle.
goodsList = goodsList
;
String json=new Gson().toJson(orderModle)
String path="www.baidu.com";
然后执行request
JsonPost(path,json);
//发送JSON字符串 如果成功则返回成功标识。
public static String request JsonPost(String urlPath, String Json) {
String result = "";
BufferedReader reader = null;
try {
URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod( "POST");
conn.setDoOutput( true);
conn.setDoInput( true);
conn.setUseCaches( false);
conn.setRequestProperty( "Connection", "Keep-Alive");
conn.setRequestProperty( "Charset", "UTF-8");
// 设置文件类型:
conn.setRequestProperty( "Content-Type", "application/json; charset=UTF-8");
// 设置接收类型否则返回415错误
//conn.setRequestProperty("accept","*/*")此处为暴力方法设置接受所有类型,以此来防范返回415;
conn.setRequestProperty( "accept", "application/json");
// 往服务器里面发送数据
if (Json != null && !TextUtils.isEmpty(Json)) {
byte[] writebytes = Json.getBytes();
// 设置文件长度
conn.setRequestProperty( "Content-Length", String.valueOf(writebytes.length));
OutputStream outwritestream = conn.getOutputStream();
outwritestream.write(Json.getBytes());
outwritestream.flush();
outwritestream.close();
Log.d( "hlhupload", "doJsonPost: conn"+conn.getResponseCode());
}
if (conn.getResponseCode() == 200) {
reader = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
result = reader.readLine();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
public static String request JsonPost(String urlPath, String Json) {
String result = "";
BufferedReader reader = null;
try {
URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod( "POST");
conn.setDoOutput( true);
conn.setDoInput( true);
conn.setUseCaches( false);
conn.setRequestProperty( "Connection", "Keep-Alive");
conn.setRequestProperty( "Charset", "UTF-8");
// 设置文件类型:
conn.setRequestProperty( "Content-Type", "application/json; charset=UTF-8");
// 设置接收类型否则返回415错误
//conn.setRequestProperty("accept","*/*")此处为暴力方法设置接受所有类型,以此来防范返回415;
conn.setRequestProperty( "accept", "application/json");
// 往服务器里面发送数据
if (Json != null && !TextUtils.isEmpty(Json)) {
byte[] writebytes = Json.getBytes();
// 设置文件长度
conn.setRequestProperty( "Content-Length", String.valueOf(writebytes.length));
OutputStream outwritestream = conn.getOutputStream();
outwritestream.write(Json.getBytes());
outwritestream.flush();
outwritestream.close();
Log.d( "hlhupload", "doJsonPost: conn"+conn.getResponseCode());
}
if (conn.getResponseCode() == 200) {
reader = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
result = reader.readLine();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}