有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓如何从独立java应用程序进行http调用

我正在使用java Swigs制作一个小字典类应用程序。我正在使用牛津字典api。有没有办法在java中发出一个简单的ajax请求,而不使用Servelet和所有高级java概念。在安卓中,我们使用http url连接来完成这项工作。为了找到这个,我在谷歌上搜索了很多,但我找不到解决方案,因为每个页面都使用Servelet显示结果。但我只知道核心java。如果有可能在没有服务的情况下拨打ajax电话,请帮助我。。。先谢谢你


共 (1) 个答案

  1. # 1 楼答案

    使用HttpURLConnection类进行http调用

    如果您需要更多帮助,请访问java Here的官方文档网站 范例

    public class JavaHttpUrlConnectionReader {
        public static void main(String[] args) throws IOException{
            String results = doHttpUrlConnectionAction("https://your.url.com/", "GET");
            System.out.println(results);
        }
        public static String doHttpUrlConnectionAction(String desiredUrl, String requestType) throws IOException {
            BufferedReader reader = null;
            StringBuilder stringBuilder;
            try {
                HttpURLConnection connection = (HttpURLConnection) new URL(desiredUrl).openConnection();
                connection.setRequestMethod(requestType);// Can be "GET","POST","DELETE",etc
                connection.setReadTimeout(3 * 1000);
                connection.connect();// Make call
                reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));// Reading Responce
                stringBuilder = new StringBuilder();
    
                String line;
                while ((line = reader.readLine()) != null) {
                    stringBuilder.append(line).append("\n");
                }
                return stringBuilder.toString();
            } catch (IOException e) {
                throw new IOException("Problam in connection : ", e);
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException ioe) {
                        throw new IOException("Problam in closing reader : ", ioe);
                    }
                }
            }
        }
    }
    

    它将发出一个调用并作为返回字符串给出响应。如果你想打电话,需要做一些额外的工作:

    try{
       DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
       wr.write(postParam.getBytes());
    } catch(IOException e){
    }
    

    注意:这里的postParamString类型,其值类似"someId=156422&someAnotherId=32651"

    把这个porson放在connection.connect()语句之前