【发布时间】:2016-10-21 08:12:43
【问题描述】:
我正在开发一个 java 应用程序。我需要调用一个远程 api 方法。假设我有这些信息:remote_ip、remote_port、remote_method_name 和一些 key-value 数据要发布。我需要通过 TCP 协议将我的数据发布到远程服务器。我以这种方式测试了Sockets,但没有工作:
Socket socket = new Socket(remote_ip, remote_port);
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));
String params = URLEncoder.encode("key1", "UTF-8")
+ "=" + URLEncoder.encode(value1, "UTF-8");
params += "&" + URLEncoder.encode("key2", "UTF-8")
+ "=" + URLEncoder.encode(value2, "UTF-8");
wr.write("POST " + remote_method_name + " HTTP/1.0\r\n");
wr.write("Content-Length: " + params.length() + "\r\n");
wr.write("Content-Type: application/x-www-form-urlencoded\r\n");
wr.write("\r\n");
wr.write(params);
wr.flush();
谁能告诉我如何正确调用api方法?
如果可能的话,我想在没有任何第三方库的情况下这样做。
任何帮助将不胜感激。
【问题讨论】:
-
任何特定的堆栈跟踪?什么不工作?
-
不抛出任何异常。只需返回
404 not found。我想知道调用远程api方法的正确方法。