我正在嘗試使用x-www-form-urlencoded正文發布數據.
通過郵遞員發帖,沒關系
通過郵遞員發帖,沒關系
但是我不能通過afnetworking來做到這一點.這是我得代碼
NSDictionary *parameters = @{@"login" : email,@"password": password};NSError *error;NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:&error];NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];self.requestSerializer = [AFJSONRequestSerializer serializer];NSString *urlString = [NSString stringWithFormat:@"%@/%@",HTTPBaseRequestURL,appendLoginUrl];NSLog(@"URL %@njsonString %@",urlString,jsonString);[self POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) { [formData appendPartWithFormData:jsonData name:@"data"];} progress:nil success:^(NSURLSessionDataTask * _Nonnull task,id _Nullable responSEObject) { onSuccess(responSEObject);} failure:^(NSURLSessionDataTask * _Nullable task,NSError * _Nonnull error) { NSString *errorDescription = [NSError serverErrorMessageFromData:(NSData *)error.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey]]; NSInteger statusCode = [NSHTTPURLResponse errorCode:(NSHTTPURLResponse*)task.response]; NetworkRequestError *requestError = [[NetworkRequestError alloc] initWithType: (NSHTTPURLResponse*)task.response ? NetworkRequestErrorTypeServerError : NetworkRequestErrorTypeNoConnection description: (NSHTTPURLResponse*)task.response ? errorDescription : nil]; requestError.statusCode = statusCode; NSLog(@"Error from server: %@,status code = %ld,error type = %lu",requestError.errorDescription,(long)requestError.statusCode,(unsigned long)requestError.type); onFailure(requestError);}];
請幫助我理解如何正確地做到這一點.謝謝!
解決方法
評論后我終于找到了答案.這是我現在正常運行得請求,請注意添加
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
這是完整得代碼:
NSString *url = [NSString stringWithFormat:@"%@%@",APIBASE,APIUSERENDPOINT];NSDictionary* parametersDictionary = [NSDictionary dictionaryWithObjectsAndKeys: username,@"username",password,@"password",nil ];AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; [manager.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; manager.requestSerializer = [AFHTTPRequestSerializer serializer];[manager POST:url parameters:parametersDictionary progress:nil success:^(NSURLSessionDataTask * _Nonnull task,id _Nullable responSEObject) { NSLog(@"%@",responSEObject);} failure:^(NSURLSessionDataTask * _Nullable task,NSError * _Nonnull error) { NSLog(@"%@",error);}];
以上是來客網為你收集整理得ios – AFNetworking 3 x-www-form-urlencoded發布數據全部內容,希望內容能夠幫你解決ios – AFNetworking 3 x-www-form-urlencoded發布數據所遇到得程序開發問題。
如果覺得來客網網站內容還不錯,歡迎將來客網網站推薦給程序員好友。
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。