如何使用JSON响应某些http GET请求和HTML给其他人?

时间:2016-06-06 17:26:42

标签: ruby-on-rails json

我正在用Java创建一个游戏,我需要我的Java客户端以JSON格式从我的Ruby on Rails Web应用程序中检索信息。

我如何说服我的应用程序有时会使用JSON,有时还会使用HTML,具体取决于请求的性质?

这将始终重定向到主页,似乎JSON部分甚至从未运行。

respond_to do |format|
  format.html do
    redirect_to :root
  end
  format.json do
    render :json => {"test" => "test"}.to_json
  end
end

以下是我的请求示例:

PrintWriter request = new PrintWriter(socket.getOutputStream());

request.print(  "GET " + path + " HTTP/1.1\r\n" + 
                               "Host: " + host + "\r\n" + 
                               "Authorization: Basic " + encodedAuth + "\r\n" +
                               "Connection: close\r\n\r\n"); 

如果不能(或不应该)这样做,我是否有理由创建一个" API"我的网站部分总是呈现JSON?

2 个答案:

答案 0 :(得分:4)

您没有从您的Java应用程序请求json数据。所以默认情况下它的渲染html。 我相信你应该在你的Java应用程序中做这样的事情

request.addHeader("content-type", "application/json");

这将确保您希望以json格式进行回复。

答案 1 :(得分:0)

  

这将始终重定向到主页,它似乎是JSON部分   从来没有跑过。

如果从未运行过,可能是因为您没有在java游戏中发送正确的请求标头。尝试使用网址末尾的'.json'在浏览器中获取路由器,您将能够检索json响应。