2014-02-10 24 views
0

到目前爲止,我使用NSMutableURLRequest,但我被建議改爲AFNetworking,我已經通過AFNetworking文檔閱讀,但我只是不明白如何使用它。ios使用AFNetworking通過POST上傳一個字符串到服務器

我的iOS應用程序中有一個字符串,當用戶觸摸按鈕UPLOAD時,我想通過POST方法上傳到服務器。

我想這就是我需要使用

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
NSDictionary *parameters = @{@"foo": @"bar"}; 
[manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"JSON: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

,但我不明白這一點。我只有一個我想上傳的字符串,我沒有任何字典參數。我也不明白在哪裏寫下我的服務器的網址。我是否簡單替換http://example.com/resources.json?我的網址以.php結尾是否重要?

難道你們中的一個人可以給我解釋一下嗎?

謝謝你的時間。

更新:

其實我試着按以下的建議,但我得到了以下錯誤消息:

2014年2月10日16:06:54.662 AppName的[5264:A0B]錯誤:錯誤域= AFNetworkingErrorDomain Code = -1016「Request failed:unacceptable content-type:text/html」UserInfo = 0xc164d80 {NSErrorFailingURLKey = myURL.php,AFNetworkingOperationFailingURLResponseErrorKey = {URL:myURL.php} {status code:200,headers { Connection =「Keep -活」; 「Content-Type」=「text/html」; Date =「Mon,10 Feb 2014 16:06:54 GMT」; 「Keep-Alive」=「timeout = 10,max = 30」; Server = Apache; 「Transfer-Encoding」=身份; Vary =「Accept-Encoding」; }},NSLocalizedDescription =請求失敗:不可接受的內容類型:text/html}

我無法解析NSDictionary *參數= @ {@「foo」:@「bar」}; 第一個必須是字符串,因爲它是服務器上的php腳本所期望的。第二個是answerField.text:用戶在推送上傳按鈕之前輸入的內容

只是不明白該怎麼做。

回答

0

您需要創建一個JSON對象(NSDictionary),其中包含一個鍵(例如「MyString」)和一個值,該值將是您的字符串。然後你可以通過AFNetorking發送這個。你確實需要知道正確的服務器地址。

NSDictionary * parameters = @ {@「myURL」:@「URL」};

+0

謝謝您的回答CGRastermouse。我不知道我明白。你爲什麼說價值將是我的字符串(我的網址)? – Clararhea

+0

很抱歉更新了我的答案。您確實需要知道您服務的上傳網址。 – GuybrushThreepwood

+0

我知道上傳網址,這沒問題。爲什麼我需要將URL定義爲參數?我如何創建一個JSON對象?我開始瀏覽它,但他們談論了很多Java。我上面顯示的代碼是否正確使用? – Clararhea

相關問題