How to make http call from standalone java application

时间:2017-04-06 17:18:45

标签: java android api

I'm making a small dictionary kind of app using java swings. I'm using oxford dictionary api for that. Is there any way to make a simple ajax request in java without using servelets and all advanced java concepts. As in android we use http url connection to do this job.I googled a lot for finding this but I could't find a solution as every page is showing results using servelets. But I know core java alone.If it is possible to make ajax call without servelts please help me...Thanks in advance...

1 个答案:

答案 0 :(得分: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);
                }
            }
        }
    }
}

它将进行调用并将响应作为返回字符串。如果你想进行POST调用,需要为此做一些额外的事情:

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

注意:此处postParamString类型,其值类似于"someId=156422&someAnotherId=32651"

并将此porson改为connection.connect()声明。