Ios 如何使用非英语字母(ø;,æ;,等等)将HTTP头添加到NSURLMutableRequest。让它工作起来

Ios 如何使用非英语字母(ø;,æ;,等等)将HTTP头添加到NSURLMutableRequest。让它工作起来,ios,objective-c,http-headers,nsurlsession,nsurlrequest,Ios,Objective C,Http Headers,Nsurlsession,Nsurlrequest,我试图从需要自定义授权头的后端端点获取一些数据。 只要用户名仅包含英文字符,它就会正常工作。如果用户名包含任何非英语字符,服务器将返回401 我将标题设置如下: [urlRequest设置值:@“授权”用于HttpHeaderField:@“MyProject ApiKeysøren:drt38f0s9a21”]//如果名字是mike而不是søren,它工作正常。不,我不会工作的 我试图手动硬编码头值中的ø字符unicode代码点(\U00F8),但效果不好。在将该值设置为标头之前,我应该如何处

我试图从需要自定义授权头的后端端点获取一些数据。 只要用户名仅包含英文字符,它就会正常工作。如果用户名包含任何非英语字符,服务器将返回401

我将标题设置如下:

[urlRequest设置值:@“授权”用于HttpHeaderField:@“MyProject ApiKeysøren:drt38f0s9a21”]//如果名字是mike而不是søren,它工作正常。不,我不会工作的

我试图手动硬编码头值中的ø字符unicode代码点(\U00F8),但效果不好。在将该值设置为标头之前,我应该如何处理该值以使其正常工作?我能够用非英语字母在android中使用这个端点。所以问题不在服务器端

注意:在请求失败之前,我得到了下面的日志

CredStore - performQuery - Error copying matching creds.  Error=-25300, query={
    class = inet;
    "m_Limit" = "m_LimitAll";
    ptcl = htps;
    "r_Attributes" = 1;
    sdmn = "django-tastypie";
    srvr = "domain.com";
    sync = syna;
}
下面是我的要求

 NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://domain/endpoint/?queryParam=3"];

[urlRequest setHTTPMethod:@"GET"];
[urlRequest setValue:[self getHeaderValue] forHTTPHeaderField:@"Authorization"];

NSURLSession *session = [NSURLSession sharedSession];

NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
    if(httpResponse.statusCode == 200)
    {
      //comes here with english letters
    }
    else if(httpResponse.statusCode == 401)
    {
        //comes here with non english letters
    }
}];
[dataTask resume];

更新:我在邮递员身上试过,但也没用。仅适用于英文字母。

不可能。最后,我请求服务器端更改,希望标头中的用户名是base64编码的。

不可能。最后,我要求服务器端进行更改,希望标题中的用户名是base64编码。

标题可能需要使用UTF8,那么转义百分比呢?检查服务器规格?@Larme尝试了UTF8和百分比转义。没用。在回到服务器端开发人员那里之前,我想知道的是,为什么它可以在android上工作,但在ios或postman上不工作。我可能想看看android在做什么。默认情况下是转义吗?我使用fiddler截获请求,它只显示字符,没有转义或编码。标题可能需要在UTF8中,转义百分比如何?检查服务器规格?@Larme尝试了UTF8和百分比转义。没用。在回到服务器端开发人员那里之前,我想知道的是,为什么它可以在android上工作,但在ios或postman上不工作。我可能想看看android在做什么。默认情况下是转义吗?我使用fiddler拦截请求,它只显示字符,没有转义或编码。