#ios #iphone #objective-c #xcode
#iOS #iPhone #objective-c #xcode
Вопрос:
** Я просмотрел множество ответов в stackoverflow для загрузки изображения с iPhone на сервер, но так и не смог найти решение.
Это простая загрузка изображения с идентификатором пользователя вместе с ним, вот как выглядит мой код**
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
request.timeoutInterval = 60;
[request setURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"image/png" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"07ee7054-010b-44da-a14f-02e3e66800b7" forHTTPHeaderField:@"userId"];
[request imageData];
conn = [[NSURLConnection alloc]
initWithRequest:request
delegate:self startImmediately:NO];
[conn scheduleInRunLoop:[NSRunLoop mainRunLoop]
forMode:NSDefaultRunLoopMode];
[conn start];
if (conn)
{
receivedData = nil;
receivedData = [NSMutableData data] ;
[receivedData setLength:0];
}
Вот как выглядит моя серверная часть,
@RequestMapping(value = "/uploadphoto", method = RequestMethod.POST, headers="Accept = */*")
public Map<String,Object> uploadPhoto(InputStream in,@RequestBody String JSONContentofPOST)
{
return UploadPhoto(in,JSONContentofPOST);
}
Ответ, который я получаю,
<html>
<head>
<title>Apache Tomcat/7.0.53 - Error report</title>
<style>
<!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}-->
</style>
</head>
<body>
<h1>HTTP Status 400 - Required String parameter 'userId' is not present</h1>
<HR size="1" noshade="noshade">
<p><b>type</b> Status report</p>
<p><b>message</b> <u>Required String parameter 'userId' is not present</u></p>
<p><b>description</b> <u>The request sent by the client was syntactically incorrect.</u></p>
Может кто-нибудь, пожалуйста, помогите мне с этим? Заранее спасибо.
Комментарии:
1. Ошибка это самостоятельный ответ 🙂
Ответ №1:
Вы не можете отправлять Content-Type: image/png
и вводить данные одновременно. Вместо этого вам нужно отправить multipart/form-data
запрос. Вам нужно настроить свой сервер для обработки этого.
Комментарии:
1. @remes, спасибо за четкое редактирование моего поста. Я рассказал об этом на своей стороне сервера, и, похоже, сейчас он работает. Спасибо.