【问题标题】:How can I get httparty to work with Glassfish? Getting 400 BadRequest response如何让 httparty 使用 Glassfish?得到 400 BadRequest 响应
【发布时间】:2010-07-30 19:18:03
【问题描述】:

使用:Glassfish v3。 HTTP 派对 0.6.1 和 0.5.2。

我正在使用 "mvn glassfish:run" (maven-glassfish-plugin) 启动 glassfish,一切都在应用程序中运行。

这个 url 在 RESTClient、cURL 和浏览器中有效,但是当我在命令行中尝试使用 httpparty 时,我得到了这个:

$> httparty -v "http://localhost:8080/parakeet/tickets/111"
GET http://localhost:8080/parakeet/tickets/111

400 BadRequest
content-type: text/plain; charset=iso-8859-1
connection: close
date: Fri, 30 Jul 2010 19:15:34 GMT
content-length: 0

我认为这是因为标题或其他原因。我尝试使用 httparty 发送以下标头:

-H "Content-type":"application/json" -H "charset":"UTF-8" -H "Accept":"*/*"

以及以上所有组合,包括

-H "Content-type":"application/json; charset=UTF-8"

有什么想法吗?

【问题讨论】:

  • 尝试嗅探请求(例如使用wireshark)以找出差异。
  • 无法让 Wireshark 获取 localhost 流量,现在是星期五 4 点,所以不想为了处理这个问题而将它推到其他地方。不过很好。谢谢。

标签: rest glassfish httparty


【解决方案1】:

显然 Glassfish 需要一个“User-Agent”标头。只要设置好,它就可以处理任何事情。这有效(从 Chrome 的资源面板中提取):

httparty -v -H "User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4" http://localhost:8080/parakeet/tickets/34

这样

httparty -v -H "User-Agent":"Commander Cool" http://localhost:8080/parakeet/tickets/34

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多