簡體   English   中英

如何在AFNetworking中設置Content-Type?

[英]How to set Content-Type in AFNetworking?

我想用發布方法設置“ application / x-www-form-urlencoded”,所以,我設置了request.requestSerializer.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")但是當我將請求設置為服務器的Content-Type不更改會發生什么?

這是錯誤的

{com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x7c166450> { URL: http://test.com } { status code: 404, headers {
    Connection = "keep-alive";
    "Content-Length" = 434;
    "Content-Type" = "text/html";
    Date = "Mon, 13 Jul 2015 11:18:18 GMT";
    Server = "nginx/1.0.15";
} }, NSErrorFailingURLKey=http://text.com, NSLocalizedDescription=Request failed: not found (404), 

這是我的代碼:

var request = AFHTTPRequestOperationManager();
request.requestSerializer = AFHTTPRequestSerializer()
request.requestSerializer.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")

request.POST(url, parameters: parameters, success: { (oper,obj) -> Void in
    // do something
}) { (oper, error) -> Void in
   // do something with error
}

錯誤的確切含義是:當您期望使用JSON時,您的服務器正在發送一個包含400狀態代碼的網頁(HTML)。

使用400狀態代碼表示錯誤的請求,這可能是由於您將URL形式編碼的文本作為application / json發送而產生的。 您真正想要的是對請求序列化程序使用AFJSONRequestSerializer。

manager.requestSerializer = [AFJSONRequestSerializer serializer];

我沒有在Swift中執行AFNetworking的任何代碼,所以我無法告訴您這些代碼,但是您可以從Objective-C代碼中獲得啟發。

希望對您有幫助。

嘗試這個

    let strURL = "Your URL"
    let dictParam : NSDictionary = [
        "u":"b",
        "p":"1290",
        ]

    let manager = AFHTTPSessionManager.init()
    manager.requestSerializer.setValue("content-type", forHTTPHeaderField: "application/x-www-form-urlencoded")
    manager.post(strURL, parameters: dictParam, progress: nil, success: { (task, responseObject) in

        print(responseObject ?? "")

    }, failure: { (task, error) in

        print(error.localizedDescription)
    })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM