gpt4 book ai didi

http - 如何在 Dart 中对 URL 进行编码?

转载 作者:行者123 更新时间:2023-12-03 02:41:35 27 4
gpt4 key购买 nike

我正在尝试将一些代码从 Python 移植到 Dart(对于 Flutter 应用程序)。但是,我在编码 URL 时遇到了一些麻烦。我正在尝试做相当于 parsedData = urllib.parse.quote(STR_DATA) 的事情.我得到的最接近的是 Uri Dart 类,有:

parsedData = Uri(queryParameters: STR_DATA);
parsedData = Uri.encodeComponent(parsedData.toString());

这接近于我想要的但不完全是。我使用 Python 得到的结果是这样的(旁注:它只是在句点之后进行编码):
ig_sig_key_version=4&signed_body=efbcf4ac8577da5eb43f33f369cda4248dba52a407e88a565038b53933737bba.%7B%22phone_id%22%3A%20%22ee79227a-cf89-41c8-9598-d0c6f3931fa4%22%2C%20%22_csrftoken%22%3A%20%22BB1PRXVV1y6FgU0Rfmcda3jJG5eVFSPd%22%2C%20%22username%22%3A%20%22USERNAME%22%2C%20%22guid%22%3A%20%22c668814c-a1e9-487c-97f0-8491b2c07c1c%22%2C%20%22device_id%22%3A%20%22android-7eb57ab90e1e2c3e%22%2C%20%22password%22%3A%20%22PASSWORD%22%2C%20%22login_attempt_count%22%3A%20%220%22%7D

使用 Dart 时,我得到如下信息:
ig_sig_key_version=4&signed_body=d1c26c132b536b3f4ffdd7f5c0524503e48216fb7f638b5f4cab65d74a9834de.%3Fphone_id%3D112626ab-1946-4ad0-bc63-b233f57033f9%26_csrftoken%3DhiPh0jSvjd0eP2dP4VUr83t3htYF7xci%26username%3DUSERNAME%26guid%3D999d2242-f52a-4044-96d9-2245c6757fbc%26device_id%3Dandroid-5daff5c3029f414c%26password%3DPASSWORD%26login_attempt_count%3D0

顺便说一句,我需要以相同方式进行编码的原因是因为否则我的 HTTP 请求将返回 400。无论如何,感谢任何帮助;先感谢您。

另一边注:我认为这是导致我的请求被拒绝的原因,但我不知道,我没有做过很多网络工作。如果您认为这可能是其他原因,请随时纠正我。

最佳答案

你做得太多了。
在这种情况下,您只需要做:parsedData = Uri.encodeComponent(STR_DATA);获得与 Python 代码相同的结果。

关于http - 如何在 Dart 中对 URL 进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59639726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com