采用http请求第三方接口实现Demo

本文介绍通过Java实现HTTP请求的具体步骤,包括构造请求、发送参数、处理响应等关键环节,并提供了一个完整的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    我们在调用第三方接口的时候,有的时候需要采用http协议进行通信,这里简单介绍一下http请求的执行过程。

  写在前面:

1
2
3
你需要找到一个能访问的接口url,知道需要传递什么参数,请求的编码格式。
 
下面是我写的一个示例。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package cn.sccl.lijianbo;
 
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.junit.Test;
 
/**
 * 测试http的访问需要的条件
 * http执行的流程
 * @author lijianbo
 * 2016年11月19日11:28:12
 *
 */
public class HttpFlow2 {
@Test
public void testHttpFlow() {
    try {
        /*
         * 接口url
         */
        String url = "https://www.baidu.com/";//需要自己修改
        /*
         * 发送请求
         */
        // 建立HttpPost对象
        HttpPost httpPost = new HttpPost(url);
        // 建立一个NameValuePair数组,用于存储欲传送的参数
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        /*
         *  添加参数
         */
         params.add(new BasicNameValuePair("name","小明"));
         params.add(new BasicNameValuePair("password","123456"));
        // 设置请求参数编码
        httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
        /*
         * 设置请求头,好像这里也可以不用处理
         */
        /*if (httpParameter2 != null && !httpParameter2.isEmptyHeader()) {
            Set<Entry<String, String>> set = httpParameter2.getHeaderMap()
                    .entrySet();
            for (Entry<String, String> e : set) {
                httpPost.addHeader(e.getKey(), e.getValue());
            }
        }*/
        // 发送Post,并返回一个HttpResponse对象
        HttpResponse response = new DefaultHttpClient().execute(httpPost);
        /*
         * 处理返回值
         */
        int statusCode = response.getStatusLine().getStatusCode();
        HttpEntity entity = response.getEntity();
        //设置返回内容编码,并转为string,也可以转换为其他类型
        String entityStr = EntityUtils.toString(entity, "UTF-8");
         
        System.out.println("状态码为===" + statusCode);
        System.out.println("返回内容为===" + entityStr);
    catch (ClientProtocolException e) {
        e.printStackTrace();
    catch (IOException e) {
        e.printStackTrace();
    }
 
}
}
/*说明:
 *    List<NameValuePair> params = new ArrayList<NameValuePair>();
    定义了一个list,该list的数据类型是NameValuePair(简单名称值对节点类型),这个代码多处用于Java像url发送Post请求。
    在发送post请求时用该list来存放参数。*/   

输出结果:

状态码为===200

返回内容为==={"status":102,"msg":"phone has been registed\uff01"


写在后面:


http请求的返回有多种形式,json、xml、HTML、text等,这个要根据接口文档来看,接口返回什么是写接口的人已经确定了的。

http协议的常用术语:

。。。。。




      本文转自建波李 51CTO博客,原文链接:http://blog.51cto.com/jianboli/1874536,如需转载请自行联系原作者




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值