用到的包
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
GET请求
/**
* 从网络获取json数据,(String byte[})
* @param path
* @return
*/
public static String getJsonByInternet(String path) throws Exception{
try {
URL url = new URL(path.trim());
//打开连接
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
if(200 == urlConnection.getResponseCode()){
//得到输入流
InputStream is =urlConnection.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while(-1 != (len = is.read(buffer))){
baos.write(buffer,0,len);
baos.flush();
}
return baos.toString("utf-8");
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
POST测试
/**
* POST请求获取数据
*/
public static String postDownloadJson(String path,String post){
URL url = null;
try {
url = new URL(path);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");// 提交模式
// conn.setConnectTimeout(10000);//连接超时 单位毫秒
// conn.setReadTimeout(2000);//读取超时 单位毫秒
// 发送POST请求必须设置如下两行
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
// 获取URLConnection对象对应的输出流
PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
// 发送请求参数
printWriter.write(post);//post的参数 xx=xx&yy=yy
// flush输出流的缓冲
printWriter.flush();
//开始获取数据
BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int len;
byte[] arr = new byte[1024];
while((len=bis.read(arr))!= -1){
bos.write(arr,0,len);
bos.flush();
}
bos.close();
return bos.toString("utf-8");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
调用
public static void main(String[] args) {
String x = postDownloadJson("http://118.89.45.116/Book/index.php/API/GetAllBook/","");
System.out.println(x);
}
转载原创文章请注明,转载自:
ben -
httpURLConnection-网络请求的两种方式-get请求和post请求(java服务器调用别人的http接口)
(https://www.benhailong.com/?p=375)
「如果你觉得对你有用,欢迎点击下方按钮对我打赏」
支付宝支付
微信支付