非常简单,或者我认为。
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
public class UrlConnectionTest {
private static final String TEST_URL = "http://localhost:3000/test/hitme";
public static void main(String[] args) throws IOException {
URLConnection urlCon = null;
URL url = null;
OutputStreamWriter osw = null;
try {
url = new URL(TEST_URL);
urlCon = url.openConnection();
urlCon.setDoOutput(true);
urlCon.setRequestProperty("Content-Type", "text/plain");
osw = new OutputStreamWriter(urlCon.getOutputStream());
osw.write("HELLO WORLD");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (osw != null) {
osw.close();
}
}
}
}
def hitme
puts "SOMEONE IS HITTING ME!" * 100
puts request.env.inspect
end
当我运行Java代码时,我在Rails Server Console中看不到任何内容。但是,当我在浏览器中点击URL时,我会按TestController#hitme
中的指定获得输出。我觉得这很简单,但没有运气。有任何想法吗?
提前致谢!
答案 0 :(得分:1)
你可能会得到一个你没有看到的异常,因为你正在吞咽它。至少在catch块中打印异常。
即使这不是问题,如果你养成吞咽错误的习惯,你也会追逐你的尾巴。
在您致电
之前,我认为您实际上并未发送任何数据urlCon.getInputStream();
答案 1 :(得分:0)
您的java代码中的URL是否显示控制器名称“test”(test / hitme),但是您提到您的控制器名称是TestController?即,应更改java代码中的URL。
private static final String TEST_URL = "http://localhost:3000/TestController/hitme";
答案 2 :(得分:0)
不要自己动摇URLConnection,让Resty处理它。
以下是您需要编写的代码(我假设您正在收回文本):
import static us.monoid.web.Resty.*;
import us.monoid.web.Resty;
...
new Resty().text(TEST_URL, content("HELLO WORLD")).toString();