为什么这种 curl 用法适用于 Windows 而不适用于 OSX / iOS?

杰西迈耶

我在我的服务器上安装了一个插件,用于验证用户凭据,基本上以“有效”或“无效”作为响应。

在 Windows 上,我可以通过以下方式成功查询我的服务器:

curl -X POST REDACTED -H "Authorization: Basic REDACTED" -F username=REDACTED -F password=REDACTED

特别的、令人讨厌的注意事项——由于命令提示符似乎是如何处理输入的,因此在 Windows 上需要双引号。

但是,我无法在 OSX 或 iOS 上复制此结果。在这里,结果总是错误地“无效”。我认为 OSX 和 Windows 之间的终端处理 curl 输入的方式存在细微差别,因此实际的 HTTP 请求与 Windows 有所不同。所以我尝试在 Swift 中更直接地发出 HTTP 请求:

let loginString = String(format: "%@:%@", REDACTED, REDACTED)
let loginData = loginString.data(using: String.Encoding.utf8)!
let base64LoginString = loginData.base64EncodedString()

let url = URL(string: REDACTED)!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.httpBody = "username=\(String(describing: username.text))&password=\(String(describing: password.text))".data(using: .utf8)

结果是一样的;'无效的'。用户提供的信息和传出的 HTTP 请求之间有几层,我不清楚问题可能潜伏在哪里。

我确保 curl 版本彼此相差几个月。

杰西迈耶

Windows 上,正确的形式是: curl -X POST REDACTED -H "Authorization: Basic REDACTED" -F username=REDACTED -F password=REDACTED

但在OSX 上,正确的形式是: curl -X POST REDACTED -H "Authorization: Basic REDACTED" -F username=REDACTED -F 'password=REDACTED'

密码字段需要用引号引起来。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android 设备的 autoGrantPermissions 适用于 Windows、Linux,但不适用于 OSX

来自分类Dev

更改 tkinter 中按钮的颜色适用于 Windows,但不适用于 Mac OSX

来自分类Dev

curl不适用于#

来自分类Dev

ImportError:适用于osx而不适用于ubuntu

来自分类Dev

为什么`newtype` 不适用于这种模式匹配?

来自分类Dev

.htaccess重定向在OSX本地有效,但不适用于Windows XAMPP

来自分类Dev

方法“不适用于iOS”

来自分类Dev

WhatsApp链接不适用于iOS

来自分类Dev

转换不适用于IOS

来自分类Dev

iOS:activityType 不适用于 UIactivityViewController

来自分类Dev

RN - ResizeMode 不适用于 IOS

来自分类Dev

WebRTC不适用于Windows

来自分类Dev

Windows网桥不适用于访客

来自分类Dev

为什么连字符不适用于 Windows 上的 Chrome?

来自分类Dev

为什么我的函数适用于矩阵但为什么不适用于向量?

来自分类Dev

cURL文件下载适用于PHP 5.3而不适用于5.5

来自分类Dev

Curl 请求适用于控制台,但不适用于 PHP

来自分类Dev

SSL适用于Chrome,但有时适用于Firefox,不适用于IOS,Android或Blackberry

来自分类Dev

AWS CodeCommit不适用于OSX上的HTTPS

来自分类Dev

OSX ssh-add -K不适用于iMac

来自分类Dev

AWS CodeCommit不适用于OSX上的HTTPS

来自分类Dev

UIWebView视频播放横向模式适用于iOS 7,而不适用于iOS 8

来自分类Dev

RTF的NSAttributedString仅适用于iOS 8,不适用于iOS 7

来自分类Dev

UIWebView视频播放横向模式适用于iOS 7,而不适用于iOS 8

来自分类Dev

为什么附加文本区域仅适用于.text而不适用于.val?

来自分类Dev

为什么File.WriteAllBytes不适用于.db文件,但适用于.csv文件?

来自分类Dev

为什么图例选择仅适用于“ ax.twinx()”而不适用于“ ax”?

来自分类Dev

RTSP流不适用于python,但适用于VLC。为什么?

来自分类Dev

为什么一个HANDLE不适用于WriteConsoleInput,但适用于WriteFile?

Related 相关文章

  1. 1

    Android 设备的 autoGrantPermissions 适用于 Windows、Linux,但不适用于 OSX

  2. 2

    更改 tkinter 中按钮的颜色适用于 Windows,但不适用于 Mac OSX

  3. 3

    curl不适用于#

  4. 4

    ImportError:适用于osx而不适用于ubuntu

  5. 5

    为什么`newtype` 不适用于这种模式匹配?

  6. 6

    .htaccess重定向在OSX本地有效,但不适用于Windows XAMPP

  7. 7

    方法“不适用于iOS”

  8. 8

    WhatsApp链接不适用于iOS

  9. 9

    转换不适用于IOS

  10. 10

    iOS:activityType 不适用于 UIactivityViewController

  11. 11

    RN - ResizeMode 不适用于 IOS

  12. 12

    WebRTC不适用于Windows

  13. 13

    Windows网桥不适用于访客

  14. 14

    为什么连字符不适用于 Windows 上的 Chrome?

  15. 15

    为什么我的函数适用于矩阵但为什么不适用于向量?

  16. 16

    cURL文件下载适用于PHP 5.3而不适用于5.5

  17. 17

    Curl 请求适用于控制台,但不适用于 PHP

  18. 18

    SSL适用于Chrome,但有时适用于Firefox,不适用于IOS,Android或Blackberry

  19. 19

    AWS CodeCommit不适用于OSX上的HTTPS

  20. 20

    OSX ssh-add -K不适用于iMac

  21. 21

    AWS CodeCommit不适用于OSX上的HTTPS

  22. 22

    UIWebView视频播放横向模式适用于iOS 7,而不适用于iOS 8

  23. 23

    RTF的NSAttributedString仅适用于iOS 8,不适用于iOS 7

  24. 24

    UIWebView视频播放横向模式适用于iOS 7,而不适用于iOS 8

  25. 25

    为什么附加文本区域仅适用于.text而不适用于.val?

  26. 26

    为什么File.WriteAllBytes不适用于.db文件,但适用于.csv文件?

  27. 27

    为什么图例选择仅适用于“ ax.twinx()”而不适用于“ ax”?

  28. 28

    RTSP流不适用于python,但适用于VLC。为什么?

  29. 29

    为什么一个HANDLE不适用于WriteConsoleInput,但适用于WriteFile?

热门标签

归档