2014-01-14 5 views
0

Похоже на ошибку в писце. Он использует java.net.HttpURLConnection, которая ограниченаScribe Запрос PATCH не работает

/* valid HTTP methods */ 
private static final String[] methods = { 
    "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE" 
}; 

Там нет простого способа переопределить эту часть (использовать Apache HTTPClient, например) и есть константа в Scribe org.scribe.model.Verb.PATCH , который в принципе никогда не работает с остальным списком, как сейчас.

Любые простые обходные пути?

ответ

0

ты по может использовать параметр заголовка «x-http-method-override» для пересылки HTTP-метода , пожалуйста, пройдите ниже кода примера, который я использовал с использованием метода «POST», но переопределяя его «PATCH»

OAuthRequest request = new OAuthRequest(Verb.POST,url); 
request.addHeader("x-http-method-override", "PATCH"); 
Service.signRequest(konyAccessToken, request);//service is OAuthService instance  
String result = response.getBody(); 

эту работу для других методов HTTP, как DELETE, TRACE ....

+0

Я не думаю, что это общее решение. Серверы не обязаны обрабатывать этот заголовок так, как вы хотите (хотя многие могут это сделать). –

+0

Да, сервер должен справиться с этим, иначе это не будет работать, как запрос POST – Surya

Смежные вопросы