gpt4 book ai didi

iOS:使用 NSUrlConnection 使用 RESTFUL Web 服务时出现 415(不支持的媒体类型)错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:08:00 25 4
gpt4 key购买 nike

我正在尝试使用 NSUrlConnection 在 iOS 应用程序中创建一个 Restful Web 服务。我正在使用下面的代码来格式化 json 字符串,然后发送到一个 Restful 网络服务。但是我在 connectionReceiveResponse: 方法中收到“415(不支持的媒体类型)”响应。请告诉我哪里出错了。

NSURL *urlLoginAuthentication= [NSURL URLWithString:@"http://www.loginService/mp/api "];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:urlLoginAuthentication];
[request setHTTPMethod:@"POST"];

NSMutableDictionary *jsonDict = [[NSMutableDictionary alloc] initWithObjects:[NSArray arrayWithObjects:self.txtUserName.text, self.txtPassWord.text,nil] forKeys:[NSArray arrayWithObjects:@"username",@"password", nil]];

NSLog(@"Dict: %@",jsonDict);

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:kNilOptions error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"JSON String: %@",jsonString);

[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"contentType"];

[request setValue:@"json" forHTTPHeaderField:@"dataType"];
[request setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: jsonData];
NSLog(@"jsonData: %@",jsonData);

self.connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

最佳答案

当您随请求发送的 Content-Type 不是支持类型时,您会收到 HTTP 状态代码 415。查看代码,您错误地设置了 Content-Type header 。这一行:

[request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"contentType"];

应该是

[request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];

关于iOS:使用 NSUrlConnection 使用 RESTFUL Web 服务时出现 415(不支持的媒体类型)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com