「Java调url」java调url接口获取数据

博主:adminadmin 2022-11-22 20:06:07 62

今天给各位分享Java调url的知识,其中也会对java调url接口获取数据进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中用什么方法调用远程url并接收其返回的xml或json

现在Java中的远程调用无非三种方法:

1:前端通过ajax远程调用,设置相应的参数,后天在需要调用的方法加上注解(具体自行百度),然后配置spring.xml文件。(此方法不推荐)。

2:通过httpclient远程调用(此方法也不推荐)。

3:使用分布式dubbo+集群zookeeper 技术(推荐)

关于java调用url接口方法的问题

对于具体的数据请求方式、请求方式、响应数据格式要看你的接口要求,这是通用代码:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

public class Test {

public static void main(String[] args) throws IOException {

System.out.println(getData());

}

public static String getData() throws IOException {

// 创建指定url的url对象,这里的地址是:淘宝商品搜索建议

URL url = new URL(";q=电脑callback=cb");

// 创建http链接对象

HttpURLConnection con = (HttpURLConnection) url.openConnection();

// 设置请求方式

con.setRequestMethod("POST");

// 打开链接,上一步和该步骤作用相同,可以省略

con.connect();

// 获取请求返回内容并设置编码为UTF-8

BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));

// 将返回数据拼接为字符串

StringBuffer sb = new StringBuffer();

// 临时字符串

String temp = null;

// 获取数据

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

sb.append(temp);

}

// 关闭流

reader.close();

return sb.toString();

}

}

结果:

Java调用URL错误,报505

HttpURLConnection 请求中 参数中如果有  空格,请求则会 505错误

解决: 需要对有空格的参数 做URL编码处理。

 import java.io.BufferedReader;  

import java.io.IOException;  

import java.io.InputStreamReader;  

import java.net.MalformedURLException;  

import java.net.URL;  

import java.net.URLEncoder;  

  

import sun.net.;  

  

import com.alibaba.fastjson.JSONObject;  

  

public class SingleTableRestClient   

{  

    private static final String targetURL = "*?queryParam=";  

      

    public static void main(String[] args)   

    {  

        JSONObject obj = new JSONObject();  

        obj.put("XM", "匡匡");  

        obj.put("BIRTHDAY", span style="color:#FF6666;"getURLEncoder/span("1988-01-01 00:00:00,1988-12-30 00:00:00"));  

          

        String urls = targetURL + obj.toString();  

        requestRestServer(urls);  

              

    }  

      

    public static JSONObject requestRestServer(String url)  

    {  

        JSONObject obj = new JSONObject();  

         try   

         {  

             URL restServiceURL = new URL(url);  

  

             HttpURLConnection httpConnection = (HttpURLConnection) restServiceURL.openConnection();  

             httpConnection.setRequestMethod("GET");  

             httpConnection.setRequestProperty("Accept", "application/json");  

             httpConnection.setRequestProperty("Accept-Charset", "UTF-8");  

             httpConnection.setRequestProperty("contentType", "UTF-8");  

              

             if (httpConnection.getResponseCode() != 200) {  

                    throw new RuntimeException("HTTP GET Request Failed with Error code : "  

                                  + httpConnection.getResponseCode());  

             }  

              

             BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(  

                    (httpConnection.getInputStream()),"utf-8"));  

  

             String output = "";  

             String result = "";  

             System.out.println("Output from Server:  \n");  

  

             while ((output = responseBuffer.readLine()) != null) {  

                    //System.out.println(output);  

                    result = output;  

             }  

             obj = JSONObject.parseObject(result);  

             System.out.println(obj.toString());  

             httpConnection.disconnect();  

  

        } catch (MalformedURLException e) {  

  

             e.printStackTrace();  

  

        } catch (IOException e) {  

             e.printStackTrace();  

  

        }  

         return obj;  

    }  

      

    @SuppressWarnings("deprecation")  

    span style="color:#FF6666;"private static String getURLEncoder(String dest)  

    {  

        return URLEncoder.encode(dest);  

    }/span  

}

修改后  正常ok

java怎样获取url参数

如果是javaweb 项目,那么非常简单,直接调用 HttpServletRequest 对象的 .getParamter("参数名称") 方法即可得到。

如果是普通java 项目:

/**

* 获取网址的指定参数值

*

* @param url

* 网址

* @param parameter

* 参数名称

* @author cevencheng

* @return

*/

public static String getParameter(String url, String parameter, String defaultValue) {

try {

final String charset = "utf-8";

url = URLDecoder.decode(url, charset);

if (url.indexOf('?') != -1) {

final String contents = url.substring(url.indexOf('?') + 1);

HashMapString, String map = new HashMapString, String();

String[] keyValues = contents.split("");

for (int i = 0; i keyValues.length; i++) {

String key = keyValues[i].substring(0, keyValues[i].indexOf("="));

String value = keyValues[i].substring(keyValues[i].indexOf("=") + 1);

if (key.equals(parameter)) {

if (value == null || "".equals(value.trim())) {

return defaultValue;

}

return value;

}

map.put(key, value);

}

}

return null;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

java关于URL类的调用。。。

你上面的代码中一共有两个操作,1,向一个url请求数据;2,获得数据,并解析成html。你遇到的响应慢的问题不在你这个代码中,而是在你发起url请求时,url的服务器给你响应的速度。url的服务器可能有数据库的操作或其它耗时操作,当它没有给你返回数据时,你这个方法是阻塞的,并不会立刻返回。

关于Java调url和java调url接口获取数据的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。