电音少女 2023-06-03 16:46 采纳率: 46.2%
浏览 108
已结题

请问哪个专家知道该怎么改吗?

我在用阿里云市场提供的服务时(第一次用阿里云)遇到了下面的问题(下面是源码与相关的依赖)不知道怎么改了

img

这是相关依赖


<?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)

服务商的链接:https://market.aliyun.com/products/57126001/cmapi022206.html?spm=5176.2020520132.101.4.65a47218rXWeav#sku=yuncode1620600000

  • 写回答

4条回答 默认 最新

  • 瞬间的未来式 2023-06-04 23:49
    关注

    代码写错了

    
    JSONObject.parse
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月4日
  • 已采纳回答 6月4日
  • 修改了问题 6月4日
  • 修改了问题 6月3日
  • 展开全部

悬赏问题

  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了
  • ¥15 微信小程序商城如何实现多商户收款 平台分润抽成