0

GETリクエストを提供しました。API 文字列内に、アプリの実行後に取得するデータを配置する必要があるため、文字列全体を 2 つの部分に分割し、間に結果 (resultText) を配置する必要があります。だから私はstartQueryとendQueryでそれを作りました。しかし、このアプリのビルド中に失敗しました。誰かがアイデアを持っていることを願っています。ここにいくつかのスクリーンショットがあります: 失敗 XCode の説明

- (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表示されている 2 つの警告は、リテラル文字列を使用できるときに を使用しているためです。

交換:

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 に答える