Imgur APIへのHTTPリクエストを作成しようとしています。タグ「cats」に関連付けられているすべての画像を取得しようとしています。 urlは、ImgurのAPIに基づいている:https://api.imgur.com/3/gallery/t/catsSwiftのヘッダーでHTTPリクエストを作成
Imgur APIは、リクエストを取得するために必要な承認について次のように述べている:そのようなイメージの取得などの公共の読み取り専用と匿名のリソースについては、
情報、ユーザーのコメントを参照するなど、あなたのリクエストに
client_id
の 承認ヘッダーを送信するだけです。この は、画像を匿名でアップロードしたい場合(画像は
)、または匿名で作成する場合は
のアルバムを作成したい場合に使用します。これにより、どのアプリケーションがAPIにアクセスしているかを知ることができます。Authorization: Client-ID YOUR_CLIENT_ID
私は、次の質問を見て、そこに提案のものを試してみましたが、それらのどれも助けなかったしました。
JSON NSURLRequest with credentials
Swift GET request with parameters
How to make a Http get and set httpHeader in Swift?
私の現在のコードはこれです:
let string = "https://api.imgur.com/3/gallery/t/cats"
let url = NSURL(string: string)
let request = NSMutableURLRequest(URL: url!)
request.setValue("clientIDhere", forHTTPHeaderField: "Authorization")
//request.addValue("clientIDhere", forHTTPHeaderField: "Authorization")
request.HTTPMethod = "GET"
let session = NSURLSession.sharedSession()
let tache = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
if let antwort = response as? NSHTTPURLResponse {
let code = antwort.statusCode
print(code)
}
}
tache.resume()
しかし、私は継続的に許可が必要な意味、403のステータスコードを取得します。私は間違って何をしていますか?
何かが、おそらくあなたの問題の説明では、間違ってます: "\"、 "メソッド": "取得"}、 "成功":偽、上記のunauth'd HTTP GETをChromeブラウザから正確に実行すると、 "status":401} 403は「許可されていません」という意味では許可されていないため、そのページを取得することはできません。 – BaseZen
ブラウザにそのURLをコピー/ペーストすると、401の同じステータスコードが返されます。しかし、Xcodeで実行すると、ステータスコードは403になります.Xcodeでrequest.setValueメソッドを削除すると、ステータスコードが変更されます – joey