Java+HttpClient学习笔记02-URL和参数

 

 

URIBuilder类:用来构建修改URI

NameValuePair类:用来构建参数

 

构建URI

import org.apache.http.client.utils.URIBuilder;

import java.net.URI;
import java.net.URISyntaxException;

public class LessonUrl {
	public static void main(String[] args) throws URISyntaxException {
		URI uri = new URIBuilder("http://www.baidu.com")
				.setPath("login")
				.build();
		System.out.println("uri:"+uri);

		URIBuilder uriBuilder = new URIBuilder("http://www.baidu.com")
				.setPath("login");
		System.out.println("uriBuilder:"+uriBuilder.toString());
}

第一种方式使用URI,需要有build()方法。一般测试时URL前面一部分都是相同,具体的接口路径是不同的。所以setPath()的参数不同就行了。

第二种方式URIBuilder,不需要Build()方法,但是需要toString()方法才是URI。

貌似第一种用的多

 

GET请求如果有参数时,参数是通过?拼接,多个参数时,每个参数有&拼接。URIBuilder类提供了相应的方法

 

如果只有一个参数,可以使用addParameter()和setParameter()

		uriBuilder.addParameter("name","1111");
		System.out.println("第一次add:"+uriBuilder.toString());
		uriBuilder.addParameter("name","2222");
		System.out.println("第二次add:"+uriBuilder.toString());
		uriBuilder.setParameter("name","3333");
		System.out.println("set:"+uriBuilder.toString());

从打印结果可以看到,add开头的方法都是新增的,有重复的也会新增。而set方法,参数不存在时新增。存在时修改。

 

而当有多个参数时,可以使用已s结尾的,并且需要和NameValuePair类配合使用,set和add的性质也如上。

		uriBuilder.setParameters(new BasicNameValuePair("name","111"),
				new BasicNameValuePair("test","22222"));
		System.out.println("setParameters:"+uriBuilder.toString());

		List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();
		BasicNameValuePair b1 = new BasicNameValuePair("name","111");
		BasicNameValuePair b2 = new BasicNameValuePair("test","333");
		nameValuePairList.add(b1);
		nameValuePairList.add(b2);
		uriBuilder.setParameters(nameValuePairList);
		System.out.println("setParameters数组:"+uriBuilder.toString());

BasicNameValuePair类是NameValuePair接口的实现类

第一种方式是直接传BasicNameValuePair

第二种是传递一个NameValuePair的List

第二种会比较常用,POST请求传递参数也需要这样,不过调用的方法不同。

 

 

Java中,Apache HttpClient是一个流行的库,用于创建HTTP客户端并执行各种HTTP请求。如果你需要通过HttpClient实现接口关联,通常会涉及到以下几个步骤: 1. **添加依赖**:首先,你需要在你的项目中引入HttpClient的依赖。如果你使用Maven,可以在pom.xml文件中添加: ```xml <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.x.y</version> <!-- 根据最新版本替换 --> </dependency> ``` 2. **创建Client对象**:创建`CloseableHttpClient`实例,这是执行HTTP请求的基本入口点: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 3. **构建请求**:根据接口需求,你可以选择`HttpGet`, `HttpPost`等不同类型的请求: ```java HttpGet get = new HttpGet("https://example.com/api/endpoint"); HttpPost post = new HttpPost("https://example.com/api/register"); ``` 4. **发送请求并处理响应**: ```java HttpResponse response; try { response = httpClient.execute(get); // 或者 httpClient.execute(post) // 获取响应码和内容 int statusCode = response.getStatusLine().getStatusCode(); HttpEntity entity = response.getEntity(); String responseBody = EntityUtils.toString(entity); // 根据状态码和实际业务处理响应 } catch (IOException e) { // 捕获并处理异常 } finally { try { httpClient.close(); // 确保关闭连接 } catch (IOException e) { // log error } } ``` 5. **处理接口关联**:如果接口有特定的数据结构或认证需求,你可能需要解析JSON或其他格式的响应,并将其映射到对应的Java对象上。可以借助如Jackson或Gson这样的库来完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值