0

我已经提供了 GET 请求。在 API 字符串中,我应该放入一些数据,这些数据是我在运行应用程序后得到的,所以我需要将整个字符串分成两部分,并将我的结果,即 resultText 放在两者之间。所以我用 startQuery 和 endQuery 做到了。但是我在为这个应用程序收费时失败了。希望有人有想法。这是一些截图: 失败 X代码说明

- (void)makeRequest
{
    if (_responseData == nil)
    {
        _responseData = [NSMutableData new];
    }

    NSString* startQuery = [NSString stringWithString:@"https://www.wikifood.eu/wikifood/en/struts/xxxxxxxx.do?method=getProductOverview&query="];
    NSString* endQuery = [NSString stringWithString:@"&startAt=0&limit=5&filter=true&loginname=xxxxxx&password=6f052cxxx15a4c2813baf3x75xx51dead1f4fe2"];

    NSURL *url = [NSURL URLWithString:[[NSString stringWithFormat:@"%@%@%@", startQuery, resultText.text, endQuery] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];

    NSURLRequest* request = [NSURLRequest requestWithURL:url];
    _urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}

谢谢。

4

2 回答 2

1

您看到的两个警告是因为您使用NSString stringWithString的时候可以只使用文字字符串。

代替:

NSString* startQuery = [NSString stringWithString:@"https://www.wikifood.eu/wikifood/en/struts/xxxxxxxx.do?method=getProductOverview&query="];
NSString* endQuery = [NSString stringWithString:@"&startAt=0&limit=5&filter=true&loginname=xxxxxx&password=6f052cxxx15a4c2813baf3x75xx51dead1f4fe2"];

和:

NSString* startQuery = @"https://www.wikifood.eu/wikifood/en/struts/xxxxxxxx.do?method=getProductOverview&query=";
NSString* endQuery = @"&startAt=0&limit=5&filter=true&loginname=xxxxxx&password=6f052cxxx15a4c2813baf3x75xx51dead1f4fe2";
于 2012-10-01T11:47:15.433 回答
0

不确定,但您正在添加百分比转义:stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding

但是你在整个字符串上都这样做......我认为你的意思是:

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@%@", startQuery, [resultText.text stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding], endQuery]];

你的 URL 不需要转义,你知道的,没关系,只是你的“不安全”文本

再说一遍:不确定,我还没有打开 XCode 试试 ^^

于 2012-10-01T08:18:18.850 回答