2016-08-09 13 views
0

Swiftを使用してPUTリクエストを実行しようとしています。 RESTクライアントでは、次のようにしてRESTリクエストを実行しようとします。vote=1をIDに追加して、例:/user/:idのようにIDを取得して、body-x-www-form-urlencodedに追加します。 !Swift REST Request PUTオプション(502 Bad Gateway:登録されたエンドポイントが要求の処理に失敗しました)

私はスウィフトコードで同じことをしようと、それは動作しませんし、私はここでresponseString = Optional(502 Bad Gateway: Registered endpoint failed to handle the request.

を得る私のコードです:

var baseURL = "http://<domain>/user" 
let putURL = baseURL + "/\(id)" 

print(putURL) 
let request = NSMutableURLRequest(URL: NSURL(string: putURL)!) 
request.HTTPMethod = "PUT" 

let putString = "vote=1" 
request.HTTPBody = putString.dataUsingEncoding(NSUTF8StringEncoding) 
request.timeoutInterval = 1500 

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 
    data, response, error in 
    guard error == nil && data != nil else { 
     print("error=\(error)") 
     return 
    } 

    let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
    print("responseString = \(responseString)") 
} 
task.resume() 
+0

一般に、5XXエラーコードはサーバー側の障害を示します。サーバーがあなたのものであれば、それをデバッグして何がうまくいかなかったのかを理解することができます。どのヘッダーを送信し、どの形式がパラメータであるかを確認してください。 –

答えて

0

あなたは、例えば、コンテンツタイプを設定するのを忘れ

request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") 

これがなければ、サーバーは送信したばかりのランダムデータのBLOBをどう処理するかわかりません。

これは必ずしも唯一の問題ではありませんが、間違いなく、問題が発生していて、表示されているエラーが発生するほどです。

関連する問題