【发布时间】:2013-08-17 11:44:00
【问题描述】:
当我尝试通过 java 连接到我的 ruby sinatra 服务器时收到错误 NoMethodError: undefined method 'bytesize'。
这是我的 ruby 代码,我怀疑我需要某种方法,当客户端连接时运行,但我不确定:
require 'sinatra'
get '/hello' do
'this page displays hello'
end
get '/' do
'this page is the main page'
end
这是我的 java 应用程序的代码:
private static Socket connect;
private static OutputStream output;
private static InputStream input;
public static void main(String[] args) throws IOException {
System.out.println("Connecting...");
connect = new Socket(InetAddress.getByName("localhost"), 4567);
System.out.println("Connected to: " + connect.getInetAddress().getHostName());
output = new ObjectOutputStream(connect.getOutputStream());
output.flush();
//input = new ObjectInputStream(connect.getInputStream());
System.out.println("Streams ready");
}
【问题讨论】:
-
通过浏览器访问 Sinatra 应用程序是否正常工作?
-
@RossPenman 是的,工作得很好
-
您希望该 Java 代码会发生什么?您不发出任何 HTTP 请求。你为什么使用
ObjectOutputStream? -
@RossPenman 我想向服务器发送文本。
-
你不能只打开一个套接字然后开始发送数据,你需要创建一个正确的 HTTP 请求。使用此代码,您只会得到与无效请求相关的服务器错误。
标签: java ruby sinatra nomethoderror