0

REST API サービスにデータを送信するアプリケーションを作成することができました。コンテンツ タイプは text/html である必要があります。しかし、アプリを実行するたびに、サポートされていない種類のコンテンツを意味する 415 http コード応答が返されます。これが私のコードです:

NSURL *url = [NSURL new];

NSData *body = nil;

NSString *contentType = @"text/html"; 

NSURL *finalURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://telesto.zapto.org:81/SMART_EdgeNode/EdgeNode/DataFeeds/3/addMeasurement"]];
NSString *yourString = @"geoX#35#geoY#65";





contentType = @"application/x-www-form-urlencoded; charset=utf-8";

body = [[NSString stringWithFormat:@"%@", yourString] dataUsingEncoding:NSUTF8StringEncoding];
NSString *putLength = [NSString stringWithFormat:@"%d",[body length]];



if (nil==finalURL) {

    finalURL = url;
}


NSMutableDictionary* headers = [[[NSMutableDictionary alloc] init] autorelease];
[headers setValue:contentType forKey:@"Content-Type"];
[headers setValue:@"mimeType" forKey:@"Accept"];
[headers setValue:@"no-cache" forKey:@"Cache-Control"];
[headers setValue:@"no-cache" forKey:@"Pragma"];
[headers setValue:@"close" forKey:@"Connection"];






NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:finalURL
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:60.0];
[request setHTTPMethod:@"PUT"];

[request setAllHTTPHeaderFields:headers];


[request setHTTPBody:body];
[request setValue:putLength forHTTPHeaderField:@"Content-Length"];

self.conn = [NSURLConnection connectionWithRequest:request delegate:self];

content-type の定義に問題があると思います。何か助けて??

前もって感謝します

4

2 に答える 2

1

やっと見つけました。問題を引き起こしたのはこの特定の行であり、 content-type で何かをしなければなりませんでした:

contentType = @"application/x-www-form-urlencoded; charset=utf-8";

それを削除した後、文字列をサーバーに適切に送信できました。

于 2012-10-05T17:44:32.357 に答える
0

サーバーは、コンテンツ タイプ「mimeType」で応答を生成する方法がわからないという不平を言っていると思います。

Accept ヘッダーは、「mimeType」ではなく、「text/html」または応答で期待するコンテンツ タイプである必要があります。


アップデート

@"text/html"これをもう一度読んだ後、 contentType を に、次に に設定していることに気付きました@"application/x-www-form-urlencoded; charset=utf-8"。どれが必要ですか?説明から、あなたは送りたいと思ってtext/htmlいますが、それはあなたの送ったものではありません。に設定contentTypeすると@"application/x-www-form-urlencoded; charset=utf-8"text/htmlが失われます。

于 2012-09-29T22:37:53.643 に答える