java获取用户的所在省份、城市的接口

java获取用户的所在省份、城市的接口代码分享

 

解决方法:

1、以下是调用第三方接口获取用户地理位置信息的代码:

private static void getlocation() {

       URL url = null;

       HttpURLConnection connection = null;

       try {//腾讯IP定位(普通)接口  10,000次/日   5次/秒

            url = new URL("腾讯位置接口,参考下面获取地址");

           connection = (HttpURLConnection) url.openConnection();// 新建连接实例

           connection.setConnectTimeout(3000);// 设置连接超时时间,单位毫秒

           connection.setReadTimeout(3000);// 设置读取数据超时时间,单位毫秒

           connection.setDoOutput(true);// 是否打开输出流 true|false

           connection.setDoInput(true);// 是否打开输入流true|false

           connection.setRequestMethod("GET");// 提交方法POST|GET

           connection.setUseCaches(false);// 是否缓存true|false

           connection.connect();// 打开连接端口

           BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));// 往对端写完数据对端服务器返回数据// ,以BufferedReader流来读取

           StringBuffer buffer = new StringBuffer();

           String line = "";

           while ((line = reader.readLine()) != null) {

               buffer.append(line);

           }

           reader.close();

           JSONObject jsonObject = JSON.parseObject(buffer.toString());

           if(jsonObject!=null&&!jsonObject.isEmpty()&&jsonObject.getIntValue("status")==0){

               jsonObject.getJSONObject("result").getJSONObject("ad_info").getString("province");

               String province = jsonObject.getJSONObject("result").getJSONObject("ad_info").getString("province");

               String city = jsonObject.getJSONObject("result").getJSONObject("ad_info").getString("city");

             

           }

       } catch (Exception e) {

           

       } finally {

           if (connection != null) {

               connection.disconnect();// 关闭连接

           }

       }

   }

 

2.网上很多第三方接口,但参差不齐,分分钟挂掉不能访问,所以我这里还是推荐大厂的接口吧,推荐使用腾讯位置服务:http://www.yayihouse.com/yayishuwu/chapter/2699

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现订阅和发布机制,可以使用观察者模式来实现。具体步骤如下: 1. 定义观察者接口Observer,包含一个更新方法update()。 2. 定义主题接口Subject,包含三个方法:注册观察者registerObserver()、移除观察者removeObserver()和通知观察者notifyObservers()。 3. 实现Subject接口,定义具体主题类ConcreteSubject,包含一个观察者列表List<Observer>,实现注册、移除和通知观察者的方法。 4. 实现Observer接口,定义具体观察者类ConcreteObserver,实现更新方法update()。 5. 在客户端中创建ConcreteSubject和ConcreteObserver对象,通过registerObserver()方法将观察者注册到主题对象中,然后调用ConcreteSubject对象的某个方法,触发notifyObservers()方法通知观察者,观察者接收到通知后,会调用具体的更新方法update()。 下面是Java代码实现: ``` // 观察者接口 public interface Observer { void update(); } // 主题接口 public interface Subject { void registerObserver(Observer observer); void removeObserver(Observer observer); void notifyObservers(); } // 具体主题类 public class ConcreteSubject implements Subject { private List<Observer> observers = new ArrayList<>(); public void registerObserver(Observer observer) { observers.add(observer); } public void removeObserver(Observer observer) { observers.remove(observer); } public void notifyObservers() { for (Observer observer : observers) { observer.update(); } } // 主题对象某个方法,触发通知观察者 public void doSomething() { // ... notifyObservers(); } } // 具体观察者类 public class ConcreteObserver implements Observer { public void update() { // 处理更新逻辑 } } // 客户端 public class Client { public static void main(String[] args) { ConcreteSubject subject = new ConcreteSubject(); ConcreteObserver observer = new ConcreteObserver(); subject.registerObserver(observer); subject.doSomething(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值