[英]How to Read from and Post to a Remote Server using Java
我是这类问题的新手。 在这里,我想向网站API发出请求,并以JSON格式获取响应。
然后,我想将此响应直接发送到其他远程URL。
请参阅下面的示例代码
PostMethod post = new PostMethod("Your URL");
post.setRequestBody("your json data");
post.setRequestHeader("Content-type", "application/json;charset=utf-8");
// Get HTTP client
HttpClient httpclient = new HttpClient();
// Execute request
try
{
int result = httpclient.executeMethod(post);
s_log.info("Response status code: " + result);
s_log.info(post.getResponseBodyAsString());
}
catch (HttpException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
post.releaseConnection();
}
可以使用标准Java API完成对远程URL的读取和写入,有关详细信息,请参见官方Java教程:
https://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.html
读:
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("http://www.oracle.com/");
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
写作
import java.io.*;
import java.net.*;
public class Reverse {
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.err.println("Usage: java Reverse "
+ "http://<location of your servlet/script>"
+ " string_to_reverse");
System.exit(1);
}
String stringToReverse = URLEncoder.encode(args[1], "UTF-8");
URL url = new URL(args[0]);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(
connection.getOutputStream());
out.write("string=" + stringToReverse);
out.close();
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()));
String decodedString;
while ((decodedString = in.readLine()) != null) {
System.out.println(decodedString);
}
in.close();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.