#objective-c
#objective-c
Вопрос:
Я очень новичок в разработке ios, я хочу написать код для запроса post, в котором я хочу установить изображение и некоторые ключи и значения в multipart. в инструменте post man я попробовал этот запрос, код запроса в swift (NSURL) приведен ниже
import Foundation
let headers = [
"content-type": "multipart/form-data; boundary=---011000010111000001101001",
"appointmentid": "6130",
"createdat": "2016-10-07 14:10:47.10476130",
"createdbyid": "000829",
"filegroup": "image",
"filelabel": "test",
"filemimetype": "png",
"filetype": "image/png",
"patientid": "000829",
"userid": "000829",
"cache-control": "no-cache",
"postman-token": "56b4e762-63ba-c1be-7d7a-67536c87a924"
]
let parameters = [
[
"name": "emrFile",
"fileName": ["0": []]
]
]
let boundary = "---011000010111000001101001"
var body = ""
var error: NSError? = nil
for param in parameters {
let paramName = param["name"]!
body = "--(boundary)rn"
body = "Content-Disposition:form-data; name="(paramName)""
if let filename = param["fileName"] {
let contentType = param["content-type"]!
let fileContent = String(contentsOfFile: filename, encoding: NSUTF8StringEncoding, error: amp;error)
if (error != nil) {
println(error)
}
body = "; filename="(filename)"rn"
body = "Content-Type: (contentType)rnrn"
body = fileContent!
} else if let paramValue = param["value"] {
body = "rnrn(paramValue)"
}
}
var request = NSMutableURLRequest(URL: NSURL(string: "https://uat.visirx.in:9443/VisiRx/UploadEmrFileServlet")!,
cachePolicy: .UseProtocolCachePolicy,
timeoutInterval: 10.0)
request.HTTPMethod = "POST"
request.allHTTPHeaderFields = headers
request.HTTPBody = postData
let session = NSURLSession.sharedSession()
let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
println(error)
} else {
let httpResponse = response as? NSHTTPURLResponse
println(httpResponse)
}
})
dataTask.resume()
используя это, я хочу написать код на objective c, а скриншот запроса post man добавлен ниже
я попробовал код в afnetworking 3.0
data = UIImageJPEGRepresentation(selectedImage, 0.8);
NSDictionary *params = @{@"createdAt" :createdDate,
@"patientId" :user.userId,
@"appointmentId":appointmentId,
@"createdById" :user.userId,
@"fileGroup" :@"image",
@"fileLabel" :@"test",
@"fileMimeType" :@"png",
@"fileType" :@"image/png",
@"userId" :user.userId};
NSMutableURLRequest *request =[[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"https://uat.app.in:9443/app/appServelet" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:data name:@"emrFile"fileName:@"test.png" mimeType:@"image/png"];
} error:nil];
//Authorization
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSURLSessionUploadTask *uploadTask;
uploadTask = [manager
uploadTaskWithStreamedRequest:request
progress:^(NSProgress * _Nonnull uploadProgress) {
// This is not called back on the main queue.
// You are responsible for dispatching to the main queue for UI updates
}
completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
NSLog(@"%@ %@", response, responseObject);
}
}];
[uploadTask resume];
ответ
{
responseHeader = {
responseCode = 0;
responseMessage = "Invalid request.Please try later.";
};
}
я не знаю, что я делаю неправильно, пожалуйста, кто-нибудь поможет мне в этом
заранее спасибо
Комментарии:
1. Попробуйте с
AFJSONRequestSerializer
вместоAFHTTPRequestSerializer
в запросе