当前位置: 首页 > 知识库问答 >
问题:

解析错误:尝试使用postman访问我的应用程序URL之一时,服务器返回了格式错误的响应-错误:解析错误:应为HTTP/ -

公西俊德
2023-03-14

我正在管理一个由python中的第三部分构建的应用程序。

我有这个网址调度程序

urls += [(r'/path/objectA/(.*)', ObjectAHandler)]  # this was made by third parts, it is expected to work

还有这门课

class ObjectAHandler(BaseHandler):

    def __init__(self, application, request, **kwargs):
        super(ObjectAHandler, self).__init__(application, request, **kwargs)  # do the init of the basehandler

    @gen.coroutine
    def post(self, action=''):
        response = {}
        
            ...     
            
            response = yield self.my_method(json_data)
        
            ... 

        self.write(json.dumps(response))

    def my_method(self, json_data)
        ...

我想检查应用程序是否正确接收到请求并返回一些响应。

所以我尝试与邮递员一起访问该网址

请求类型:

POST

网址:

http://<machine_ip>:<machine_port>/path/objectA/

我从邮递员响应框中收到此错误

分析错误:服务器返回了格式错误的响应

当我点击“在控制台中查看”时,我看到

POST http://machine_ip>:<machine_port>/path/objectA/
Error: Parse Error: Expected HTTP/
Request Headers
Content-Type: application/json
User-Agent: PostmanRuntime/7.28.4
Accept: */*
Postman-Token: d644d7dd-699b-4d77-b32f-46a575ae31fc
Host: xx.xxx.x.xx:22
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Request Body

错误:解析错误:预期的HTTP /是什么意思?

我检查了我的应用程序日志,但似乎没有处理任何请求,即使Postman指示服务器正在返回(格式错误的)响应。

我还尝试将目标网址限定为:

https...

但是它回来了

 Error: write EPROTO 28427890592840:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:../../third_party/boringssl/src/ssl/tls_record.cc:242:

我发现这表明我应该坚持使用HTTP

然后我也尝试了:

http://<machine_ip>/path/objectA/

<machine_ip>/path/objectA/

通常会返回:

Error: connect ECONNREFUSED <machine_ip>:80

我也试着用替代线

urls += [(r'/path/objectA/(.*)', ObjectAHandler)]  

urls += [(r'/path/objectA/', ObjectAHandler)]  

urls += [(r'/path/objectA', ObjectAHandler)]  

但这些都没有奏效。

怎么了?我该怎么修?

显然,根据邮递员Github上的这个帖子,问题只发生在邮递员桌面上,而不是浏览器上的邮递员上。

所以我试着在浏览器上发送申请表邮递员,但我得到了

 Cloud Agent Error: Can not send requests to reserved address. Make sure address is publicly accessible or select a different agent.

因为,根据另一个线程,

邮递员网站无法向您计算机的本地主机发送请求。它首先需要连接到你的电脑与邮差桌面客户端

即使我按照答案中的指示去做

运行它[ndr. Postman桌面],然后转到浏览器中的Postman工作区-

我得到的还是一样的

Error: Parse Error: Expected HTTP/

在浏览器上的Postman Desktop和Postman上。

继续调试,我试着从我的终端在那个url上画一个圈:

myuser@mymachine-VirtualBox:~$ curl --verbose "http://<target_machine_ip>:<target_machine_port>/path/objectA"

我得到了:

*   Trying <target_machine_ip>:<target_machine_port>...
* Connected to <target_machine_ip> (<target_machine_ip>) port <target_machine_port> (#0)
> GET /orkpos5/receipt HTTP/1.1
> Host: <target_machine_ip>:<target_machine_port>    
> User-Agent: curl/7.74.0    
> Accept: */*    
>     
* Received HTTP/0.9 when not allowed  
    
* Closing connection 0    
curl: (1) Received HTTP/0.9 when not allowed

共有1个答案

唐俊英
2023-03-14

已解决

由于公开的api是由第三方构建的,供内部使用,因此不会公开给公众。

我不知道,所以在请求URL中,我输入了HTTP请求的众所周知的端口号,即数字22(请参阅众所周知的端口号列表。)。

为了解决问题,在请求URL中,我更改了

 类似资料:
  • 问题内容: 我有这个行代码 在我的本地(WAMP)php 5.4.3上运行良好,但是当我将其托管在服务器cpanel上时,它将给出此错误 我服务器上的php版本是5.2.17 我没有发现任何问题,请帮忙 问题答案: 您需要运行PHP 5.4+才能使用速记数组

  • dispatcher Servlet中的配置 我在用杰克逊罐子 jackson-core-asl-1.9.0.jar Jackson-Mapper-ASL-1.9.0.jar json-lib-0.9.jar Spring版本是3.2.4

  • 给Rest服务打电话 http://acme.com/app/widget/123 返回: 此客户端代码的工作原理是: 但是,http://acme.com/app/widget/456返回: 但此客户端代码引发了一个异常: 我试过: 第二次调用只是抛出了另一个HttpClientErrorException,而且它觉得调用服务两次是不对的。 是否有一种方法可以调用该服务一次,并在成功时将响应解析

  • 问题内容: 我想使用Javascript 解析此内容。数据如下所示: 在线上的每个教程都教您如何使用Twitter解析JSON,但是我不太确定如何使用JSON解析。 我想在一个网站上进行设置,以查看NFL团队在一个有趣的项目中获得的分数,以及有关解析JSON的良好学习体验,因为我不太在乎Twitter的东西。 这可能吗?有什么好的入门教程吗?甚至一些起始代码? 问题答案: 一般来说,您可以使用 J

  • 清除浏览器缓存并重新启动 恢复到GIT中当时正在工作的旧提交 重新启动终端 运行其他正常运行的rails应用程序