2017-03-29 3 views
0

Wenn ich Rohdaten mit Postman posten, kommt die Antwort. Ich verwende diesen CodeWie posten Sie rohe Daten in swift 3?

Daten von 0 Bytes EveryTime erhalten. Bereits mit Alamofire versucht, aber keine Antwort.

Auch habe ich versucht, in Objective C, wo ich Antwort bin immer, Code ist:

NSURL *url = [NSURL URLWithString:urlStr]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)postData.length] forHTTPHeaderField:@"Content-Length"]; 
    [request setValue:@"text/html" forHTTPHeaderField:@"Content-Type"]; 
    [request setHTTPBody:postData]; 

    NSError *error = nil; 
    NSHTTPURLResponse *response = nil; 


    [[NSURLConnection alloc] initWithRequest:request delegate:self]; 


    NSData *retData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    if (error) 
    { 
     //error 
     NSLog(@"error"); 
     return @""; 
    } 
    else 
    { 
     NSLog(@"No error"); 
     NSString *charlieSendString = [[NSString alloc] initWithData:retData encoding:NSUTF8StringEncoding]; 
     NSLog(@"data come : %@",charlieSendString); 
     return charlieSendString; 
    } 

Gesendet "dict" in Log:

[ "complaint_id": COMBRD1 "user_id": USR9, "type": complaint_brand "AUTH_CODE": KL1hwYrAhNVnSgT "is_skip": 2]

+1

Es sollte 'json/application' nicht' jo sn/Anwendung'. – Poles

+0

@Poles Noch keine Antwort :( –

+1

@DeepakChaudhary Versuchen Sie 'Content-Type' auf' application/json' anstelle von 'text/html' –

Antwort

1
var dict = Dictionary<String, Any>() 

    dict = ["user_id" :userid, "type" :type, "complaint_id" :complaintId,"auth_code" : authCode, "is_skip" :isSkip] 
    var jsonData = NSData() 

    // var dataString2 :String = "" 
    do { 
     jsonData = try JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted) as NSData 
     // you can now cast it with the right type 
    } catch { 
     print(error.localizedDescription) 
    } 


    let url:URL = URL(string: "http://Backend/detailed_complaint/index.php")! 
    let session = URLSession.shared 


    var request = URLRequest(url: url) 
    request.httpMethod = "POST" 
    request.setValue("\(jsonData.length)", forHTTPHeaderField: "Content-Length") 
    request.setValue("application/json", forHTTPHeaderField: "Content-Type") 
    request.httpBody = jsonData as Data 

    let task = session.dataTask(with: request as URLRequest) { 
     (
     data, response, error) in 

     guard let data = data, let _:URLResponse = response, error == nil else { 
      print("error") 
      return 
     } 
     let dataString = String(data: data, encoding: String.Encoding.utf8) 
     print("no data",dataString ?? "no data") 
    } 
    task.resume()