ios - 从 nsstring 发送 Post http 请求

标签 ios objective-c json

我有这个 json:

{"myFriends":{"userId":"the user id", "userName":"the user name", "friends":[{"u":"friend user id","n":"friend user name"},{"u":"friend user id","n":"friend user name"}]}}

我想将他发送到服务器的 post 请求中,这是我目前尝试执行此操作的方式:

+(NSData *)postDataToUrl:(NSString*)urlString :(NSString*)jsonString
{
    NSData* responseData = nil;
    NSURL *url=[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    responseData = [NSMutableData data] ;
    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];
    NSString *bodydata=[NSString stringWithFormat:@"%@",jsonString];

    [request setHTTPMethod:@"POST"];
    NSData *req=[NSData dataWithBytes:[bodydata UTF8String] length:[bodydata length]];
    [request setHTTPBody:req];
    NSURLResponse* response;
    NSError* error = nil;
    responseData = [NSURLConnection sendSynchronousRequest:request     returningResponse:&response error:&error];
    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

    NSLog(@"the final output is:%@",responseString);

    return responseData;
}

json 字符串包含json,但由于某些原因,服务器总是得到nil 并返回错误。如何解决这个问题?

最佳答案

告诉您的服务器内容类型肯定会有所帮助:

[request addValue:@"application/json"
   forHTTPHeaderField:@"Content-Type"];

此外:在我自己的代码中我使用:

[request setHTTPBody:[bodydata dataUsingEncoding:NSUTF8StringEncoding]]

关于ios - 从 nsstring 发送 Post http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34362556/

相关文章:

ios - 模拟器和设备给出不同的结果

ios - 错误: database is locked in sqlite

objective-c - "Drag ' n ' Drop"游戏动画

ios - AVAudioPlayer 声音文件位置未更改/更新

iphone - 在 iOS 中与 Instagram 上的图像共享文本

php - 运行 Composer 时遇到麻烦

javascript - 使用 angularjs 从数据库检索记录后将 xml 转换为 json

Java.lang.IllegalStateException : Already attached

ios - 当我点击 MPVolumeSlider 后,UIView 上的 UITapGestureRecognizer 被触发

ios - 是否可以在 collectionview sizeForItemAtIndexPath 委托(delegate)方法中获取单元格的标签?