2014-02-11 49 views
0

我正在開發一個iOS應用程序,該應用程序在RestKit .10中實現,並將其更新爲.20。應用程序發佈的其中一個請求將數據塊作爲參數。以前,應用程序使用RKParam setData編碼:MIMEType:forParam;我正在尋找這個.20版本的參數添加到NSMutableDictionary參數。RestKit發佈請求參數MIMEType

舊代碼:

NSString *logString; // loaded up elsewhere 

    NSData *textFileContentsData = [logString dataUsingEncoding:NSUTF8StringEncoding]; 

    RKParams *params = [RKParams params]; 

    [params setData: textFileContentsData MIMEType:@"text/plain" forParam:@"log_file"]; 

新代碼:

NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; 


[parameters setObject:???? forKey:@"log_file"]; // not sure how to get string here. 

我試圖把textFileContentsData NSData對象爲????但數據以二進制形式到達,這不是必需的。我需要弄清楚如何保留text/plain MIMEType。

TIA

Janene

+0

服務器期望收到什麼? – Wain

+0

@服務器期望使用MIMEType text/plain的參數。文本是從日誌文件中提取的大量信息。 –

回答

0

從你的描述我不會用RestKit這個因爲沒有映射怎麼回事,我會使用AFNetworking代替(車輛包括在RestKit所以你已經有充分的訪問)。

使用RestKit,你可以使用對象管理器創建發送一個請求,是這樣的:

NSMutableURLRequest *request = 
     [objectManager multipartFormRequestWithObject:nil 
               method:RKRequestMethodPOST 
               path:@"..." 
              parameters:nil 
          constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
           [formData appendPartWithFormData:... 
                  name:@"..."]; 

     }]; 

那麼你可以使用RKObjectRequestOperation來處理請求。但我不相信這正是你所需要的,如果你只是想設置MIME類型(只是一個標題)和發佈數據,兩者都可以直接在NSMutableURLRequest上完成。

+0

謝謝,Wain。不幸的是,RestKit不適用於這個應用程序,但我會研究這種方法,謝謝! –

+0

我並不是說要刪除RestKit,只是爲了選擇使用它並使用更合適的API ...... – Wain