2014-01-08 5 views
0

В настоящее время у меня есть строка, которую я хочу отправить POST на URL.JSON Data NULL специальный символ «&»

Он отлично работает, если только он встречает специальные символы, такие как «&». После этого будут отправлены другие данные. Например, у меня есть строка «Chang & хун» в Brand тексте, выбрав модель Value зависит от Марка текста я разбор URL в

post=[NSString stringWithFormat:@"http://moneytree.com.au/rest-webservice/rest/&Brand=%@",StrbrandSelect1]; 

NSURL *url; 
url = [NSURL URLWithString:[post 
          stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSMutableURLRequest *RequestSubject=[[NSMutableURLRequest alloc]init]; 

[RequestSubject setURL:url]; 
[RequestSubject setHTTPMethod:@"POST"]; 
NSLog(@"RequestSubject %@",RequestSubject); 
Typedata1 = [NSURLConnection sendSynchronousRequest:RequestSubject 
            returningResponse:Nil error:Nil]; 
if (RequestSubject) 
{ 
    NSDictionary *Dictjson = [NSJSONSerialization 
           JSONObjectWithData:Typedata1 
           options:kNilOptions 
           error:nil]; 

    NSLog(@"The JSON outPut is:%@",Dictjson); 

    NSLog(@"The Array Count is: %d",[Dictjson count]); 

но массив Count является: 0

Выберите данные зависят от марки «Chang & hong»

Мне нужны выходные данные в зависимости от марки, модель Text - «Plasma» и «LCD».

Пожалуйста, помогите мне.

+0

Вы попытались перейти на этот адрес вручную в браузере и посмотреть, что всплывает? Веб-сервис принадлежит вам (вы его кодировали?) –

+0

Эта ссылка ни к чему не приводит, я думаю, вы забыли заменить% @ –

+0

@YoavSchwartz: Можете ли вы отредактировать код. Благодарю. –

ответ

0

Когда вы отправляете URL-адрес, есть определенные символы, которые «не разрешены» или имеют другое значение. например, каждое пространство должно быть% 20 ​​и, например, знак «&» будет% 26, поскольку в противном случае его интерпретируется сервером как переход к следующей переменной, так же, как вы не будете использовать знак «/», потому что браузер совершите ошибку, чтобы связаться со мной в другом месте. если вы отправите Brand = Chang% 20 &% 20hong, сервер будет обрабатывать деталь после & в качестве новой переменной. почему вы замените это на Chang% 20% 26% 20hong.

Другой пример использования URL использованный:

?CountryName=Australia&appliance=Television&Brand=Chang%20%26%20hong 

буквальные знаки «&» являются использование для разделения различных переменных для сервера, в данном случае: CountryName, бытовой техники и бренд. когда вы используете литерал '&' в своем сообщении, вы заставляете его думать, что% 20hong - это новая переменная.

+0

: i Невозможно добавить URL-адрес непосредственно в кодировку. (если непосредственно добавлено, массив равен null). Для EX: Если пользователь выбрал бренд chang & hong, модель покажет, зависит от выбора бренда, поэтому я уже закодировал NSUTF8StringEncoding. Пожалуйста, помогите мне, как заменить его путем кодирования. –

+0

можете ли вы опубликовать nslog переменной «url». потому что использование stringByAddingPercentEscapesUsingEncoding должно было сработать, также попробуйте вручную заменить знак & sign в переменной StrbrandSelect1 на% 26 и посмотреть, работает ли он (я знаю, его бандад не является решением, его просто для определения проблемы) –

+0

Я не могу получить какой-либо NSlog данные. Но выход будет зависеть от chang & hong = {"parentkey": [[{"Type": "LCD (LED)"}]]}. Если я проанализирую непосредственно, данные станут нулевыми. –

Смежные вопросы