我需要为网站创建帐户生成器,但请求有效负载存在一些问题
Posted
技术标签:
【中文标题】我需要为网站创建帐户生成器,但请求有效负载存在一些问题【英文标题】:I need to make an account generator for a site but i have some problems with the request payload 【发布时间】:2021-10-20 10:29:09 【问题描述】:注册窗口需要姓名、姓氏、电子邮件、密码。有形式的例子
以及像这样的请求负载格式
这种格式是什么?我怎样才能使用这种格式发出请求而不会出错?如果我尝试使用相同的格式发出请求,但只更改电子邮件、密码、姓名和姓氏,我会在响应标题中收到一条 grpc 消息:“grpc:收到的消息大于最大值(1551183920 与 4194304)”和帐户生成不工作。
这是我提出的要求:
import requests
url = "https://grips-web.aboutyou.com/checkout.CheckoutV1/registerWithEmail"
payload = "H\\u0008\\u009f\\u0005\\u0010\\u0004\\u001a\\u001abillyjhon22@gmail.com*\\u0007Billy2\\u0007Jhonson8\\u0002J\\u000f\\n\\rhelloworld122!\\u0021P\\u0001"
headers =
"content-type": "application/grpc-web+proto",
"accept-language": "it-IT,it;q=0.9"
response = requests.post(url, data=payload, headers=headers)
【问题讨论】:
关于如何连接到 gRPC 服务器、如何构建和发送 gRPC 请求的示例代码会很有用。 是的,抱歉我更新了它@EaswarSwaminathan 【参考方案1】:给出application/grpc-web+proto
Content-Type
,我假设这是一个使用gRPC-Web 向gRPC 服务提交请求(通过代理)的javascript 客户端。
gRPC 使用在线二进制编码消息来提高效率(和 HTTP/2),因此直接手工制作消息更具挑战性。
通常,您会使用 protobuf (schema) 文件来生成例如为您提供一个 Python 客户端,这将公开一个您可以用来(取消)编组消息的类。
可以直接破解消息,但具有挑战性。
看看 Marc Gravell 的 Protobuf Decoder 可能会有所帮助。 您或许能够解码浏览器客户端使用的 JavaScript 导入,以对 protobuf 服务|方法进行逆向工程。 gRPC-Web 使用 gRPC 而不是 HTTP/2。因此,相同的 RPC 和消息将直接与代理和服务器一起使用。 然后您可以直接编译 Python 库。您还需要识别源服务器,因为您需要通过 HTTP/2 直接向其发送 gRPC,而不是针对代理的 gRPC-Web 调用。 gRPC 服务所有者可能通过 IP、某种身份验证机制和/或其他方式限制对 gRPC-Web 客户端的后端访问。注意通常,如果未发布原型,则服务所有者不打算以其他方式使用服务。
【讨论】:
以上是关于我需要为网站创建帐户生成器,但请求有效负载存在一些问题的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 swagger 使用 json 作为有效负载的 post 请求创建 api
VS 2017 ASP.NET Core Web 应用程序和个人用户帐户有效,但页面不存在