我在用阿里云市场提供的服务时(第一次用阿里云)遇到了下面的问题(下面是源码与相关的依赖)不知道怎么改了
这是相关依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.aliyun.api.gateway</groupId>
<artifactId>java.demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>9.3.7.v20160115</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
package com.aliyun.api.gateway.demo;
import java.io.FileWriter;
import java.io.IOException;
import java.net.http.HttpResponse;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.api.gateway.demo.util.HttpUtils;
public class Test {
public static String cityname= "上海市";
public static String query(String phone){
String host = "https://api04.aliyun.venuscn.com";
String path = "/mobile";
String method = "GET";
String appcode = "你自己的AppCode ";
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + appcode);
Map<String, String> querys = new HashMap<String, String>();
querys.put("mobile", "phone");
try {
/**
* 重要提示如下:
* HttpUtils请从
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
* 下载
*
* 相应的依赖请参照
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
*/
HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);
String result = new String(response.getResult());
JSONObject jsonObject = new JSONObject(result);
JSONObject dataObject = jsonObject.getJSONObject("data");//从jsonObject对象中获取名为"data"的子属性的值,并将其转化为JSONObject对象
return dataObject.getString("city");// 从dataObject对象中获取名为"city"的子属性的值,并将其作为返回结果返回
//System.out.println(response.toString());
//获取response的body
//System.out.println(EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
e.printStackTrace();
}
return "";//由于query方法的返回值类型为String,所以需要在try-catch语句块中使用return语句将data变量中的查询结果作为返回值返回
}
public static void main(String[] args) {
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter("手机号码.txt");
String phone = "";
for (int i = 0; i <= 9999; i++) {
phone = String.format(Locale.ROOT, "135%04d0015", i);//用String.format()方法将一个四位数的手机号码插入到格式化字符串中,生成一个新的字符串
String city = query(phone);//获取指定手机号码所对应的城市信息,并将其存储在一个字符串变量中
if (city.contains("杭州")) {
fileWriter.write(phone + "\t");// 将符合条件的请求参数写入文件中,使用制表符分隔不同的参数
}
fileWriter.flush();// 将缓冲区中的数据刷新到磁盘上
}
} catch (IOException e) {
e.printStackTrace();// 如果出现 IO异常,则打印异常信息
System.out.println("文件写入失败,请检查文件路径和权限!");
if (fileWriter != null) {
try {
fileWriter.close();// 关闭文件流对象
} catch (IOException ex) {
}
}
} finally {
if (fileWriter != null) {
try {
fileWriter.close();// 关闭文件流对象
} catch (IOException ex) {
}
}
}
}
}
下面是示例代码
public static void main(String[] args) {
String host = "https://api04.aliyun.venuscn.com";
String path = "/mobile";
String method = "GET";
String appcode = "你自己的AppCode";
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + appcode);
Map<String, String> querys = new HashMap<String, String>();
querys.put("mobile", "18138434699");
try {
/**
* 重要提示如下:
* HttpUtils请从
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
* 下载
*
* 相应的依赖请参照
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
*/
HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);
System.out.println(response.toString());
//获取response的body
//System.out.println(EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
e.printStackTrace();
}
}
下面是URL:调用地址:
http(s)://api04.aliyun.venuscn.com/mobile
请求方式:
GET
返回类型:
JSON
API 调用:
API 简单身份认证调用方法(APPCODE)