Кажется, что есть несколько сообщений, таких как here, которые спрашивают, как использовать библиотеки HTTPClient Apache Commons в Java, чтобы сделать POST для сервлета. Тем не менее, похоже, что у меня возникают некоторые проблемы с тем же, что и с помощью аннотированного метода контроллера Spring. Я пробовал несколько вещей, но получил HTTP 401 Bad Request ответы с сервера. Любые примеры этого были бы весьма признательны.Apache HttpClient делает многопользовательский POST для Spring @Controller class
EDIT: код Я пытаюсь использовать:
//Server Side (Java)
@RequestMapping(value = "/create", method = RequestMethod.POST)
public void createDocument(@RequestParam("userId") String userId,
@RequestParam("file") MultipartFile file, HttpServletResponse response) {
// Do some stuff
}
//Client Side (Groovy)
void processJob(InputStream stream, String remoteAddress) {
HttpClient httpclient = new DefaultHttpClient()
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1)
HttpPost httppost = new HttpPost("http://someurl/rest/create")
MultipartEntity mpEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE)
InputStreamBody uploadFilePart = new InputStreamBody(stream, 'application/octet-stream', 'test.file')
mpEntity.addPart('file', uploadFilePart)
mpEntity.addPart('userId', new StringBody('testUser'))
httppost.setEntity(mpEntity)
HttpResponse response = httpclient.execute(httppost);
println(response.statusLine)
}
Тем не менее получение 400 Bad Request в ответ от сервера.
вы можете показать код/с что вы пробовали? – Ritesh
Пытался дать базовый код от клиента и сервера без слишком большого количества внешних зависимостей. – Greymeister