2010-12-28 9 views
0

Ich verwende die NSURL-Klasse in der iPhone Framework Foundation-Bibliothek, um eine URL-Anforderung an einen Server zu erstellen. Aus irgendeinem Grund bekomme ich nur für diese spezielle URL eine Null zurück. Ich verstehe nicht warum. Irgendein Grund?URLstring-Klasse für iPhone

Der Objective-C-Code ist:

NSURL * ScriptUrl = [NSURL URLWithString: scriptURLString];

wo scriptURLString ein NSString mit Wert geben unten:

http://myserver/cgi-bin/AdsERsubset.cgi?user=139&fieldList=employee_num,mbox_num,last_name,first_name,disp_emp_num,company_num,TECH_PRIVILEDGE,printer_code,desktop_cos,id,supv_emp_num&action=first&searchkey=1 mit proxy = DIRECT

Die obige URL ist eine CGI-Anforderung.

Gibt es ein spezielles Zeichen, das ich hier entkommen muss?

Bitte um Rat. Danke im Voraus.

Antwort

0

Die Leerzeichen im Suchschlüssel sollten mit Escapezeichen versehen sein.

Verwenden stringByAddingPercentEscapesUsingEncoding auf die URL-Zeichenfolge, bevor es zu URLWithString vorbei:

NSURL *scriptURL= [NSURL URLWithString:[scriptURLString 
      stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
+0

Danke. Das hat für mich funktioniert. – Subbu

+0

Ich habe eine benutzerdefinierte Klasse und ein NSString-Feld in dieser Klasse. Ich habe ein Objekt erstellt und versuche, dem NSString-Feld einen Wert zuzuweisen, aber der Code bricht. Ich weiß nicht, was ich falsch mache. Hier ist die Probe : \t \t \t \t \t \t \t tech.employee_num = [[NSString alloc] stringWithString: (NSString *) [[[EmployeeArray objectAtIndex: j] objectAtIndex: 0] objectAtIndex: 1]]; – Subbu

+0

Sie sollten das als eine neue Frage mit mehr Informationen einschließlich was Sie meinen "der Code bricht". – Anna

0

... & Suchbegriff = 1 mit proxy = Ihr DIRECT

ein & fehlt nicht wahr ?

Ich könnte mir vorstellen, es wäre mehr wie:

... & Suchbegriff = 1 & mit% 20proxy = DIRECT

oder

... & searchkey = 1 & withproxy = DIREKT

+0

Danke für Ihre Antwort. Die Logik der ersten Antwort löste es für mich. – Subbu