Ios 使用“获取图像响应”;邮政「;从.net服务器到objective-c的方法

Ios 使用“获取图像响应”;邮政「;从.net服务器到objective-c的方法,ios,objective-c,Ios,Objective C,很抱歉再次提出相同/相关的问题 今天早上我发了一个问题,我得到了正确的回答,我的问题也解决了 在同一个案例中,我的.net开发人员创建了一个用于上传用户配置文件pic的API。我遵循了相同的指导原则,也编写了代码 但我得到了一个错误: 我在这里发布了我的代码,如:: - (void)getLoginUserId:(NSString*)newUserId withUploadImageData: (NSString*)newImageData; { NSString*urlStr = @

很抱歉再次提出相同/相关的问题

今天早上我发了一个问题,我得到了正确的回答,我的问题也解决了

在同一个案例中,我的.net开发人员创建了一个用于上传用户配置文件pic的API。我遵循了相同的指导原则,也编写了代码

但我得到了一个错误:

我在这里发布了我的代码,如::

- (void)getLoginUserId:(NSString*)newUserId withUploadImageData: (NSString*)newImageData;
{
    NSString*urlStr =  @"http://taxi.expertverification.com/api/v1/Getimage";
    NSString * myRequestString =[NSString stringWithFormat:@"user_id=%@&imageget=%@",
                             newUserId,
                             newImageData];
    NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
    [request setHTTPMethod: @"POST"];
    //post section
    [request setHTTPBody: myRequestData];
    NSURLSession *session = [NSURLSession sharedSession];
    [[session dataTaskWithRequest:request
            completionHandler:^(NSData *data,
                                NSURLResponse *response,
                                NSError *error) {
                // handle response
                NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
                NSLog(@"requestReply: %@", requestReply);
            }] resume];
}
 [self getLoginUserId:@"121"
  withUploadImageData:@"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"];
requestReply: {"Message":"An error has occurred.","ExceptionMessage":"Parameter is not valid.","ExceptionType":"System.ArgumentException","StackTrace":"
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement)
at RKB.RestAPI.V1Controller.insertimages(getimage _get) in d:\\Projects\\RKB_RestAPI\\V1.cs:line 568
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4()
at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)"}
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
Log.d(TAG, "ba1: "+ba1);


  nameValuePairs.add(new BasicNameValuePair("user_id", "121");
  nameValuePairs.add(new BasicNameValuePair("imageget", "same as my image data");



try{
    HttpClient httpclient = new DefaultHttpClient();

    HttpPost httppost = new HttpPost("http://taxi.expertverification.com/api/v1/Getimage";

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();               

    String outPut = EntityUtils.toString(entity);
    Log.i("GET RESPONSE—-", outPut);

    Log.e("log_tag ******", "good connection";

    bitmapOrg.recycle();
}catch (Exception e) {
    Log.e("log_tag ******", "Error in http connection " + e.toString());
}
调用方法是::

- (void)getLoginUserId:(NSString*)newUserId withUploadImageData: (NSString*)newImageData;
{
    NSString*urlStr =  @"http://taxi.expertverification.com/api/v1/Getimage";
    NSString * myRequestString =[NSString stringWithFormat:@"user_id=%@&imageget=%@",
                             newUserId,
                             newImageData];
    NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
    [request setHTTPMethod: @"POST"];
    //post section
    [request setHTTPBody: myRequestData];
    NSURLSession *session = [NSURLSession sharedSession];
    [[session dataTaskWithRequest:request
            completionHandler:^(NSData *data,
                                NSURLResponse *response,
                                NSError *error) {
                // handle response
                NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
                NSLog(@"requestReply: %@", requestReply);
            }] resume];
}
 [self getLoginUserId:@"121"
  withUploadImageData:@"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"];
requestReply: {"Message":"An error has occurred.","ExceptionMessage":"Parameter is not valid.","ExceptionType":"System.ArgumentException","StackTrace":"
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement)
at RKB.RestAPI.V1Controller.insertimages(getimage _get) in d:\\Projects\\RKB_RestAPI\\V1.cs:line 568
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4()
at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)"}
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
Log.d(TAG, "ba1: "+ba1);


  nameValuePairs.add(new BasicNameValuePair("user_id", "121");
  nameValuePairs.add(new BasicNameValuePair("imageget", "same as my image data");



try{
    HttpClient httpclient = new DefaultHttpClient();

    HttpPost httppost = new HttpPost("http://taxi.expertverification.com/api/v1/Getimage";

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();               

    String outPut = EntityUtils.toString(entity);
    Log.i("GET RESPONSE—-", outPut);

    Log.e("log_tag ******", "good connection";

    bitmapOrg.recycle();
}catch (Exception e) {
    Log.e("log_tag ******", "Error in http connection " + e.toString());
}
我的回答是:

- (void)getLoginUserId:(NSString*)newUserId withUploadImageData: (NSString*)newImageData;
{
    NSString*urlStr =  @"http://taxi.expertverification.com/api/v1/Getimage";
    NSString * myRequestString =[NSString stringWithFormat:@"user_id=%@&imageget=%@",
                             newUserId,
                             newImageData];
    NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
    [request setHTTPMethod: @"POST"];
    //post section
    [request setHTTPBody: myRequestData];
    NSURLSession *session = [NSURLSession sharedSession];
    [[session dataTaskWithRequest:request
            completionHandler:^(NSData *data,
                                NSURLResponse *response,
                                NSError *error) {
                // handle response
                NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
                NSLog(@"requestReply: %@", requestReply);
            }] resume];
}
 [self getLoginUserId:@"121"
  withUploadImageData:@"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"];
requestReply: {"Message":"An error has occurred.","ExceptionMessage":"Parameter is not valid.","ExceptionType":"System.ArgumentException","StackTrace":"
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement)
at RKB.RestAPI.V1Controller.insertimages(getimage _get) in d:\\Projects\\RKB_RestAPI\\V1.cs:line 568
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4()
at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)"}
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
Log.d(TAG, "ba1: "+ba1);


  nameValuePairs.add(new BasicNameValuePair("user_id", "121");
  nameValuePairs.add(new BasicNameValuePair("imageget", "same as my image data");



try{
    HttpClient httpclient = new DefaultHttpClient();

    HttpPost httppost = new HttpPost("http://taxi.expertverification.com/api/v1/Getimage";

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();               

    String outPut = EntityUtils.toString(entity);
    Log.i("GET RESPONSE—-", outPut);

    Log.e("log_tag ******", "good connection";

    bitmapOrg.recycle();
}catch (Exception e) {
    Log.e("log_tag ******", "Error in http connection " + e.toString());
}
requestReply:{“Message”:“出现错误”,“ExceptionMessage”:“参数无效”,“ExceptionType”:“System.ArgumentException”,“StackTrace”:
在System.Drawing.Image.FromStream(Stream Stream,Boolean useEmbeddedColorManagement,Boolean validateImageData)
位于System.Drawing.Image.FromStream(Stream-Stream,布尔值使用EmbeddedColorManagement)
在d:\\Projects\\RKB\u RestAPI\\V1.cs:第568行中的RKB.RestAPI.V1Controller.insertimages(getimage\u get)处
在lambda_方法(闭包、对象、对象[])
在System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.c__DisplayClass13.b__c(对象实例,对象[]方法参数)
位于System.Web.Http.Controller.ReflectedHttpActionDescriptor.ActionExecutor.Execute(对象实例,对象[]参数)
在System.Web.Http.Controllers.ReflectedHttpActionDescriptor.c_uuDisplayClass5.b_uuu4()中
在System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 Func,CancellationToken CancellationToken)“}
但是如果我使用ANDROID运行这个API,我会得到正确的响应

ANDROID代码是:

- (void)getLoginUserId:(NSString*)newUserId withUploadImageData: (NSString*)newImageData;
{
    NSString*urlStr =  @"http://taxi.expertverification.com/api/v1/Getimage";
    NSString * myRequestString =[NSString stringWithFormat:@"user_id=%@&imageget=%@",
                             newUserId,
                             newImageData];
    NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
    [request setHTTPMethod: @"POST"];
    //post section
    [request setHTTPBody: myRequestData];
    NSURLSession *session = [NSURLSession sharedSession];
    [[session dataTaskWithRequest:request
            completionHandler:^(NSData *data,
                                NSURLResponse *response,
                                NSError *error) {
                // handle response
                NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
                NSLog(@"requestReply: %@", requestReply);
            }] resume];
}
 [self getLoginUserId:@"121"
  withUploadImageData:@"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"];
requestReply: {"Message":"An error has occurred.","ExceptionMessage":"Parameter is not valid.","ExceptionType":"System.ArgumentException","StackTrace":"
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement)
at RKB.RestAPI.V1Controller.insertimages(getimage _get) in d:\\Projects\\RKB_RestAPI\\V1.cs:line 568
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4()
at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)"}
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
Log.d(TAG, "ba1: "+ba1);


  nameValuePairs.add(new BasicNameValuePair("user_id", "121");
  nameValuePairs.add(new BasicNameValuePair("imageget", "same as my image data");



try{
    HttpClient httpclient = new DefaultHttpClient();

    HttpPost httppost = new HttpPost("http://taxi.expertverification.com/api/v1/Getimage";

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();               

    String outPut = EntityUtils.toString(entity);
    Log.i("GET RESPONSE—-", outPut);

    Log.e("log_tag ******", "good connection";

    bitmapOrg.recycle();
}catch (Exception e) {
    Log.e("log_tag ******", "Error in http connection " + e.toString());
}
ArrayList nameValuePairs=新的ArrayList();
日志d(标签“ba1:+ba1”);
添加(新的BasicNameValuePair(“用户id”,“121”);
添加(新的BasicNameValuePair(“imageget”,“与我的图像数据相同”);
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://taxi.expertverification.com/api/v1/Getimage";
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpclient.execute(httppost);
HttpEntity=response.getEntity();
字符串输出=EntityUtils.toString(实体);
i(“获取响应--”,输出);
Log.e(“Log_标记*******”,“良好连接”;
bitmapporg.recycle();
}捕获(例外e){
Log.e(“Log_标记*******,“http连接错误”+e.toString());
}
代码(ANDROID)和我早上发布的一样


如果你不介意的话,你能帮我解决这个问题吗?

我认为使用AFN网络解决这个问题很容易

它将大大简化您的过程并节省大量时间。它被开发人员广泛使用

只需几行即可轻松发送带有参数的图像(后多部分请求):

例如,检查此代码。(请确保参考上述链接并添加适当的头文件)

AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManager];
NSDictionary*参数=@{@“foo”:@“bar”};
NSURL*filePath=[NSURL fileURLWithPath:@”file://path/to/image.png"];
[经理职务:@”http://example.com/resources.json“参数:参数constructingBodyWithBlock:^(id formData){
[formData appendPartWithFileURL:filePath名称:@“image”错误:nil];
}成功:^(AFHTTPRequestOperation*操作,id响应对象){
NSLog(@“成功:%@”,响应对象);
}失败:^(AFHTTPRequestOperation*操作,NSError*错误){
NSLog(@“错误:%@”,错误);
}];

我认为使用AFN网络很容易解决这个问题

它将大大简化您的过程并节省大量时间。它被开发人员广泛使用

只需几行即可轻松发送带有参数的图像(后多部分请求):

例如,检查此代码。(请确保参考上述链接并添加适当的头文件)

AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManager];
NSDictionary*参数=@{@“foo”:@“bar”};
NSURL*filePath=[NSURL fileURLWithPath:@”file://path/to/image.png"];
[经理职务:@”http://example.com/resources.json“参数:参数constructingBodyWithBlock:^(id formData){
[formData appendPartWithFileURL:filePath名称:@“image”错误:nil];
}成功:^(AFHTTPRequestOperation*操作,id响应对象){
NSLog(@“成功:%@”,响应对象);
}失败:^(AFHTTPRequestOperation*操作,NSError*错误){
NSLog(@“错误:%@”,错误);
}];

您遇到的问题是,在组装表单数据之前,需要对base64数据进行URL编码(其中充满了解码为空格的
+
s,而不是
+
s)

可能的选择:

  • 使用
    CFURLCreateStringByAddingPercentEscapes
    (确保要转义的字符中包含
    +
    )或
    stringByAddingPercentEncodingWithAllowedCharacters:
    转义数据(在汇编之前)
  • 使用一些现有的库可以为您做到这一点
  • 切换到更易于操作的其他格式,如JSON
这是我个人用于URL转义数据的类别:

NSString+urlencode.h

#import <Foundation/Foundation.h>

@interface NSString (urlencode)

- (NSString *)escapedValueForURLParameter;

@end
#import "NSString+urlencode.h"

@implementation NSString (urlencode)

- (NSString *)escapedValueForURLParameter
{
    return (__bridge_transfer NSString *)
        CFURLCreateStringByAddingPercentEscapes(
                                                NULL,
                                                (__bridge CFStringRef) self,
                                                NULL,
                                                (CFStringRef) @"!*'();:@&=+$,/?%#[]",
                                                kCFStringEncodingUTF8
                                            );
}

@end

您遇到的问题是,在组装表单数据之前,需要对base64数据进行URL编码(其中充满了解码为空格的
+
s,而不是
+
s)

可能的选择:

  • 使用
    CFURLCreateStringByAddingPercentEscapes
    (确保要转义的字符中包含
    +
    )或
    stringByAddingPercentEncodingWithAllowedCharacters:
    转义数据(在汇编之前)
  • 使用一些现有的库可以为您做到这一点
  • 切换到更易于操作的其他格式,如JSON
这是第一类