java http原生
时间: 2023-07-11 17:58:32 浏览: 41
Java提供了HTTP相关的原生API,可以通过这些API来进行HTTP协议的通信。其中,主要包括以下几个类:
1. URL类:用于表示一个统一资源定位符(URL),可以通过该类来打开一个HTTP连接。
2. HttpURLConnection类:用于表示一个HTTP连接,通过该类可以进行HTTP请求和响应的操作。
3. HttpRequest类和HttpResponse类:分别表示HTTP请求和响应,可以通过这两个类来设置HTTP请求和解析HTTP响应。
4. HttpClient类:是Apache HttpClient库提供的一个HTTP客户端类,其功能更加强大,可以支持更多的HTTP协议特性和高级功能。
需要注意的是,由于HTTP是一种面向连接的协议,因此在使用原生API进行HTTP通信时,需要手动管理连接的建立、使用和释放,相较于使用第三方库来说,开发难度更大,但更加灵活。
相关问题
javahttp原生请求方式
Java 原生提供了多种方式进行 HTTP 请求,包括:
1. 使用 URLConnection 类进行请求,示例代码如下:
```
URL url = new URL("http://www.example.com");
URLConnection connection = url.openConnection();
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write("request body");
out.close();
InputStream response = connection.getInputStream();
```
2. 使用 HttpURLConnection 类进行请求,示例代码如下:
```
URL url = new URL("http://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write("request body");
out.close();
InputStream response = connection.getInputStream();
```
3. 使用 HttpClient 类进行请求,示例代码如下:
```
CloseableHttpClient client = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://www.example.com");
httpPost.setHeader("Content-Type", "application/json");
StringEntity entity = new StringEntity("request body");
httpPost.setEntity(entity);
CloseableHttpResponse response = client.execute(httpPost);
```
以上是 HTTP POST 请求的示例代码,HTTP GET 请求的代码类似,只需要修改请求方法即可。
java原生http请求
Java原生HTTP请求可以使用OkHttp或CloseableHttpClient来实现。使用OkHttp需要引入okhttp-3.10.0.jar的依赖,使用CloseableHttpClient则需要引入httpclient-4.5.6.jar的依赖。以下是一个使用OkHttp进行HTTP请求的示例代码:
```java
import com.alibaba.fastjson.JSON;
import okhttp3.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class HttpTest {
public static void main(String[] args) throws IOException {
String url = "http://10.30.10.151:8012/gateway.do";
OkHttpClient client = new OkHttpClient();
Map<String, String> paraMap = new HashMap<>();
paraMap.put("yybh", "1231231");
RequestBody requestBody = new MultipartBody.Builder()
.addFormDataPart("consumerAppId", "tst")
.addFormDataPart("serviceName", "queryCipher")
.addFormDataPart("params", JSON.toJSONString(paraMap))
.build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client
.newCall(request)
.execute();
if (response.isSuccessful()) {
System.out.println("result: " + response.body().string());
} else {
throw new IOException("Unexpected code " + response);
}
}
}
```