0

私はobjective-cを初めて使用し、(Rest URLに基​​づいて)投稿リクエストをサーバーに送信する方法を探していましたが、それに画像も含めました...データを投稿する多くの方法を見つけました...画像だけを投稿する方法がありますが、2つを組み合わせたものはありません...

これらすべてをゼロから作成するのは面倒な作業のように思われるため、ラッパー、クラス、またはライブラリを探しています。「ASIHTTPRequest」を見つけましたが、これはサポートされなくなりました。ARC をオフにしますが、まだサポートされているものを見つけたいと思います...

また、まだサポートされているように見えるAFNetworkingも見つけましたが、間違っている可能性があります。非常に単純なデータとプロファイル画像を組み合わせるソリューションが見つかりません...

何か助けていただければ幸いです。

ASIHTTPRequest ライブラリを使用する必要がありますか?? または、AFNetworking ライブラリのサンプル コードはありますか?

AFnetworkingライブラリに使用しているコードは次のとおりです...

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                        _emailAddressField.text, @"email",
                        _usernameField.text, @"username",
                        _passwordField.text, @"password",
                        nil];

AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:%"http://url.com/api/whatever/"];

[client postPath:@"/" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject)
{

    NSString *text = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
    NSLog(@"Response: %@", text);

} failure:^(AFHTTPRequestOperation *operation, NSError *error)
{

    NSLog(@"%@", [error localizedDescription]);

}];    
4

1 に答える 1

0

AFNetworkingを使用multipartFormRequestWithMethodしている場合は、画像のアップロードに使用できます。

// Create the http client
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseUrl:url];
// Set parameters
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys: @"param1", @"key1", nil];
// Create the request with the image data and file name, mime type, etc.
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:method path:@"url/to/" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:data name:nameData fileName:fileName mimeType:mimeType];
}];

次に、アップロードの進行状況ブロックを追加して、アップロードプロセスのフィードバックを取得できます。

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
    //Manage upload percentage
}];

setCompletionBlockWithSuccessまた、操作の成功と失敗をキャッチするために追加することができます。詳細については、こちらをご覧ください。最後になりましたが、重要なことですが、リクエストを操作キューに追加します。

[httpClient enqueueHTTPRequestOperation:operation];
于 2012-12-10T10:14:02.053 に答える