【问题标题】:How to convert curl post data to Objective C如何将 curl 帖子数据转换为 Objective C
【发布时间】:2018-09-17 06:06:00
【问题描述】:

您好,我想使用 api_key 和版本向服务器发送发布请求 在 curl 我可以通过命令发送

curl -X POST -F "images_file=@fruitbowl.jpg" "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classify?api_key=fc1isndcb9fb837d139b11644ksks8cf3d66e175&version=2016-05-20"

当我尝试在 Objective C 中使用代码实现它时

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setHTTPMethod:@"POST"];
[request setURL:[NSURL URLWithString:URL]];

[request addValue:@"fc1isndcb9fb837d139b11644ksks8cf3d66e175" forHTTPHeaderField:@"api_key"];
[request addValue:@"2016-05-20" forHTTPHeaderField:@"version"];
[request setHTTPBody:strData];

NSError *error = nil;
NSHTTPURLResponse *responseCode = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error];

显示 api_key 无效。 我做错什么了吗?

【问题讨论】:

  • 如果我点击那个链接,我会得到同样的invalid-api-key 错误。
  • 是的,实际上我故意为这个问题输入了错误的密钥,所以除了我之外没有人可以使用那个确切的链接。但密钥在我的实际代码中有效
  • api_key 和 version 在 URL 中,而不是在标头中。

标签: objective-c curl nsurlconnection nsurl nsmutableurlrequest


【解决方案1】:

在您的 curl 示例中,api_key 和 version 放在 url 路径中。在您的 objc 示例代码中,您将它们放在 header 字段中,它们不一样。

要达到相同的结果,您应该将两个参数合并到NSURL 实体中。

【讨论】:

    猜你喜欢
    • 2021-10-05
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 2012-02-17
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多