gpt4 book ai didi

ios - 通过POST方法发送带有图像的参数?

转载 作者:行者123 更新时间:2023-11-29 10:51:43 25 4
gpt4 key购买 nike

我想发送带有参数(用户名、密码等)的图像??以下是我的代码:

-(void) senRequestForPostAnswerWithImage:(NSString *)imageName andAnswer:(NSString *)answer andQuestionID:(NSString *)questionID
{
NSUserDefaults *loginData = [NSUserDefaults standardUserDefaults];
NSString *username = [loginData objectForKey:@"username"] ;
NSString *password = [loginData objectForKey:@"password"];

NSString *postString = [NSString stringWithFormat:@"&username=%@&password=%@&image=%@&answer=%@&question_id=%@", username, password, imageName, answer, questionID];
NSString *urlString = @"http://myAPIName/MethodName";
NSURL *myURL = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

NSMutableURLRequest *detailRequestToServer =[NSMutableURLRequest requestWithURL:myURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0];
[detailRequestToServer setHTTPMethod:@"POST"];
[detailRequestToServer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
const char *utfString = [postString UTF8String];
NSString *utfStringLenString = [NSString stringWithFormat:@"%zu", strlen(utfString)];
[detailRequestToServer setHTTPBody:[NSData dataWithBytes: utfString length:strlen(utfString)]];
[detailRequestToServer setValue:utfStringLenString forHTTPHeaderField:@"Content-Length"];

NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:detailRequestToServer delegate:self];
if (theConnection)
{
self.responseData = [[NSMutableData alloc] init];
[GeneralClass startHUDWithLabel:@"Loading…"];
}
else
NSLog(@"Connection Failed!");
}

我知道这个网站上有很多问题,但我不知道我需要在现有代码中更改哪里以及更改什么??

所以,请建议我需要更改现有代码以添加发送图像的功能??

NOTE: without image this above code is working well for me.

最佳答案

我的建议是使用 AFNetworking。它将大大简化您的流程并为您节省大量时间。它是开发人员广泛使用的框架。

https://github.com/AFNetworking/AFNetworking

您可以使用几行代码轻松发送带参数的图像(POST 多部分请求):

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"foo": @"bar"};
NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
[manager POST:@"http://example.com/resources.json" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:filePath name:@"image" error:nil];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];

关于ios - 通过POST方法发送带有图像的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20120798/

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