Страница 1 из 1

Не работает PUT запрос

Добавлено: 12 окт 2014, 10:06
Xemii
Нужно произвести PUT запрос к сайту, но сайт возвращает ошибку. При этом если выполнять запрос с компьютера то все выполняется.
Ошибка воспроизводится с компьютера только если посылать POST запрос.
При этом GET запросы работают нормально
Собственно сам вопрос, действительно ли android посылает PUT, а не пост запрос? Может нужны какие-нибудь дополнительные заголовки?
Пробовал и HttpURLConnection и DefaultHttpClient.

Код: Выделить всё

public static JSON createFromNet(String url, String method, String params){
		String json = "{}";
		try{
			DefaultHttpClient httpClient = new DefaultHttpClient();
			HttpUriRequest httpRequest = null;
			if (method == "GET"){
				httpRequest = JSON.getGetRequest(url);
			}
			if (method == "PUT"){
				httpRequest = JSON.getPutRequest(url, params);	
			}
			if (httpRequest == null){ 
				throw new Exception();
			}
        
			HttpResponse httpResponse = httpClient.execute(httpRequest);
			HttpEntity httpEntity = httpResponse.getEntity();
			InputStream is = httpEntity.getContent();
			
			BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();  
		}catch (UnsupportedEncodingException e) {
        }catch (ClientProtocolException e) {
        }catch (IOException e) { 
        }catch (Exception e) { 
        }
		
		return new JSON(json);
	}

protected static HttpUriRequest getPutRequest(String url, String params) throws UnsupportedEncodingException{
		StringEntity input = new StringEntity(params);
		input.setContentType("application/json");
		input.setContentEncoding("UTF-8");
		
		HttpPut request = new HttpPut(url);
		request.setEntity(input);
		
		
		return request;
	}
	
	protected static HttpUriRequest getGetRequest(String url){
		return new HttpGet(url);
	}

Re: Не работает PUT запрос

Добавлено: 12 окт 2014, 18:19
Leeroy
del

Re: Не работает PUT запрос

Добавлено: 12 окт 2014, 21:24
Xemii
Leeroy, спасибо за ответ.

Я делал через HttpUrlConnection как Вы привели в примере.
От сервера все равно приходит ответ, как будто ему послали POST запрос, а не PUT.

Re: Не работает PUT запрос

Добавлено: 13 окт 2014, 08:14
Xemii
Проблема решена. На сервере был редирект на другую страницу.