如何用Java调用别人API接口?

sunnie朱 2017-04-25 04:04:31
真的是看了网上全部的post/get例子代码,还是调试不出来。

我手上有一个 别人接口API 的appKey,然后我的token也是可以拿到的。

拿到token以后,我需要把token放到header里,
然后再把参数user 和 password 传入,然后post过去,
从而能反馈我一个userid之类的,
然后我再把token和userid放到header,这样就可以调用它的接口其他方法了。


但是问题是!!!我post过去一直无效,返回的错误是无效的参数。




package java111;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class HttpJavaPost {
public static String sendPost(String url, String param) throws IOException {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();// 设置通用请求的属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "keep-Alive");
conn.setRequestProperty("Content-Type", "application/json");// 我加的一个头
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 我加的一个头
conn.setRequestProperty("Dms-Access-Token", "XXXXXXXXXXXXXXXXXXXXXXX");

// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
try {
while ((line = in.readLine()) != null) {
result += line;

}
} catch (IOException e) {
System.out.println("发送POST请求出现异常");
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
finally {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
}
return result;
}

public static void main(String[] args) throws IOException {
//发送 POST请求
String sr = HttpJavaPost.sendPost("http://baidu.com", "?mobile=XX&password=XX");
System.out.println(sr);
}

}





快被虐哭了,真的不知道哪里有问题,还望大神能抽空回答我一下
...全文
6221 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
寒木666 2019-10-02
  • 打赏
  • 举报
回复
没有请求方式 设置post
煮茶 2017-08-11
  • 打赏
  • 举报
回复
?mobile=XX&password=XX 参数是不是得弄成json格式呢{mobile:XX,password:XX}
Intboy 2017-04-25
  • 打赏
  • 举报
回复
建议使用apache的httpclient工具包
110成成 2017-04-25
  • 打赏
  • 举报
回复
在浏览器中输入url能有值返回吗? 建议用wireshark抓包看下 然后再根据抓包的情况配置。
panzhenxing3152 2017-04-25
  • 打赏
  • 举报
回复
post请求, 用httpPost试一下

81,108

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧