ios - json post 方法 Swift 中出现媒体类型不受支持的错误

标签 ios json swift

我是 swift 的新手,正在制作一个简单的应用程序,使用这个将摄氏度转换为华氏度:JSON WebService

我的代码在按钮 btn 操作上:

 @IBAction func btn(sender: AnyObject) {
    let celnum = txtfirld.text
    
    let myUrl = NSURL(string: "http://webservices.daehosting.com/services/TemperatureConversions.wso");
    print("pass 1")
    let request = NSMutableURLRequest(URL: myUrl!);
    request.HTTPMethod = "POST";
    print("pass 2")
    let postString = "nCelsius=\(celnum)"
    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding);
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request){
        data, response, error in
        
        print("pass 3")
        
        if error != nil {
            print("Error 1")
            return
        }
        let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
        print("responseString =  \(responseString)")
        
        do{
            let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary
            if let parseJson = json{
                let resultValue = parseJson["status"] as! String!
                print("result:\(resultValue)")
                
                
            }
         
        } catch {print("Error 2")}   
 }
    
    task.resume()
    
 }

但它在控制台上给我这样的错误:

pass 1
pass 2
pass 3
responseString =  Optional(The server cannot service the request because the media type is unsupported.)
Error 2

请帮忙谢谢你:)

最佳答案

1 - 你应该设置你的请求内容类型:

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

2 - 您的正文不是 JSON 格式,请使用:

let params = ["nCelscius" : 1212]
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions())

关于ios - json post 方法 Swift 中出现媒体类型不受支持的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37583146/

相关文章:

ios - 带参数的 SKAction 运行方法?

ios - XMPPFramework - 如何获取在线和离线好友列表?

javascript - 将 JSON 对象发送到客户端时,响应中未定义值 - Node.js

ios - 如何在 Xcode 9 中在 iOS 设备上运行我的应用程序?

iphone - 仅以编程方式为不在 AppDelegate 中的一个 ViewController 创建 TabBar

objective-c - 代码签名错误 : code signing is required for product type 'Application' in SDK 'iOS 6.0'

php - 在 iOS 中进行 JSON 序列化时失败,但通过浏览器访问时 API 正常

android - java.lang.String 类型的值 <br 无法在 Android 上转换为 JSONObject

ios - 将数据从一个类传递到另一个类

swift - 核心数据 : Not null property should be optional?