2011-12-09 74 views
1

如何使用get方法在具有6個值和json格式的api鏈接上發佈數據?發佈數據但GET方法json -ios

我真的模糊不清。即時消息做了幾天。是否最好有6個文本框用於寫入數值,還有一個按鈕用於指示發佈數據?

查看我的代碼,請幫助。

-(IBAction)postDataPressed 
{ 

    NSString *urlString = @"http://192.168.18.8/apisample2/friendb.php?fm=jsn"; 
    NSURL *url = [NSURL URLWithString:urlString]; 
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 

    [request setPostValue:user.text forKey:@"un"]; 
    [request setPostValue:pass.text forKey:@"pd"]; 
    [request setPostValue:gender.text forKey:@"gd"]; 
    [request setPostValue:age.text forKey:@"ag"]; 
    [request setPostValue:status.text forKey:@"st"]; 
    [request setPostValue:lookfor.text forKey:@"lf"]; 

    [request setRequestMethod:@"GET"]; 
    [request setCompletionBlock:^{ 
    NSString *responseString = [request responseString]; 
    NSLog(@"Response: %@", responseString); 
    }]; 
    [request setFailedBlock:^{ 
     NSError *error = [request error]; 
     NSLog(@"Error: %@", error.localizedDescription); 
    }]; 
    [request setDidFinishSelector:@selector(requestFinished:)]; 
    [request setDidFailSelector:@selector(requestFailed:)]; 
    [request startAsynchronous]; 


} 

我希望有人可以幫助。

回答

1
NSString *request_url = [NSString stringWithFormat: @"http://192.168.18.8/apisample2/friendb.php?fm=jsn&un=%@&pd=%@&gd=%@&ag=%@&st=%@&lf=%@", 
    user.text, pass.text, gender.text, age.text,status.text,lookfor.text]; 
NSURL *url = [NSURL URLWithString:request_url]; 
ASIHttpRequest *request = [ASIHttpRequest requestWithURL:url]; 
request.delegate = self; 
.... 

HTTP GET方法只接受URL數據,稱爲查詢字符串,所以你要自己構建查詢字符串。

+0

感謝您的回覆。我已經嘗試和修改我的代碼到一個u張貼,但我仍然得到服務器錯誤'數據查詢發送,不完整'我仍然缺少什麼?再次感謝。 – NoobMe

+0

使用NSLog檢查傳輸的數據,甚至更好地使用像Charles這樣的代理服務器 - 也許存在轉義問題(某些字符由於字符編碼不正確而不能傳輸)。 – Till

+0

@Till - 查爾斯代理似乎沒有在這裏打開。我檢查了小提琴手,但它只是寫在記事本上,用奇怪的編碼。先生,我可以用其他方式嗎?感謝您的回覆....我真的希望我能完成這個應用程序 – NoobMe