2012-01-12 2 views
0
import dispatch._ 
val h = new Http 
val req = url(url).as_!(username, password) 
val handler = req << (payload, "application/xml") >:> identity 
handler.apply { 
    case (200, _, Some(entity), _) => (200, Some(entity)) 
    case (status, _,_,_) => (status, None) 
} 
val response = h(handler) 

私はこれを試してみた:このDispatch Scalaの同等のHttpClient Javaコードは何ですか?

public static void postService(Profile user, String subject, String body){ 
    Credentials credentials = new UsernamePasswordCredentials(userName, authToken); 
    AuthScope authScope = new AuthScope(baseUrl, 80, AuthScope.ANY_REALM); 
    HttpClient client = new HttpClient(); 
    PostMethod post = new PostMethod(baseUrl); 

    client.getParams().setAuthenticationPreemptive(true); 
    client.getState().setCredentials(authScope, credentials); 

    String payload = makePayload(user, subject, body); 
    RequestEntity entity = null; 
    try{ 
     entity = new StringRequestEntity(payload, CONTENT_TYPE, null); 
    } catch(UnsupportedEncodingException e){ 
     e.printStackTrace(); 
    } 
    post.setRequestEntity(entity); 

    try{ 
     client.executeMethod(post); 
    } catch(IOException e){ 
     e.printStackTrace(); 
    } catch(HTTPException e){ 
     e.printStackTrace(); 
    } 
} 

UPDATED - 解決しよう:これはAuthScopeの誤解でした。私はそれを理解しました、基本的に私はこの問題を解決したばかりの "mysite.com"ではなく "https://mysite.com"というURLのプロトコル全体を渡していました。

+0

それで、どのように動作しないのですか? –

答えて

0

これはAuthScopeの誤解です。私はそれを理解しました、基本的に私はこの問題を解決したばかりの "mysite.com"ではなく "https://mysite.com"というURLのプロトコル全体を渡していました。

関連する問題