POST/PUT要求をデータと共に送信する方法と、要求に資格情報を追加する方法の例については、オンラインで多くの例があります。しかし、両方...Java POST/PUT要求とデータと資格情報の併用
0
A
答えて
0
私はポストのための良いユーティリティをオンラインで見つけました。 HttpPostRequestこれは私が欲しいものの90%です。 これはPOSTのみをサポートしており、PUT要求も必要です。
私はPOSTとPUTの両方をサポートするように上記のコードを修正しました。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
public class HttpRequest{
HttpEntityEnclosingRequestBase createConnectivity(HttpEntityEnclosingRequestBase requestBase,String username, String password)
{
HttpEntityEnclosingRequestBase request = requestBase;
String auth=new StringBuffer(username).append(":").append(password).toString();
byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")));
String authHeader = "Basic " + new String(encodedAuth);
request.setHeader("AUTHORIZATION", authHeader);
request.setHeader("Content-Type", "application/json");
request.setHeader("Accept", "application/json");
request.setHeader("X-Stream" , "true");
return request;
}
void executeReq(String jsonData, HttpEntityEnclosingRequestBase request)
{
try{
executeHttpRequest(jsonData, request);
}
catch (UnsupportedEncodingException e){
System.out.println("error while encoding api url : "+e);
e.printStackTrace();
}catch(Exception e){
System.out.println("exception occured while sending http request : "+e);
e.printStackTrace();
}
finally{
request.releaseConnection();
}
}
void executeHttpRequest(String jsonData, HttpEntityEnclosingRequestBase request) throws UnsupportedEncodingException, IOException
{
HttpResponse response=null;
String line = "";
StringBuffer result = new StringBuffer();
request.setEntity(new StringEntity(jsonData));
HttpClient client = HttpClientBuilder.create().build();
response = client.execute(request);
System.out.println("Post parameters : " + jsonData);
System.out.println("Response Code : " +response.getStatusLine().getStatusCode());
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
while ((line = reader.readLine()) != null){ result.append(line); }
System.out.println(result.toString());
}
}
使用法:
HttpPut put = new HttpPut("URL");//HttpPost for post request
HttpEntityEnclosingRequestBase request=httpPostReq.createConnectivity(put, "username", "password");
httpPostReq.executeReq(getJSONFrom(user), request);
2
この記事http://www.baeldung.com/httpclient-4-basic-authenticationもあなたのために有用です。 Apache HttpClient 4でリクエストを行うのはとても簡単です。
+0
類似の例私は、データ付きの投稿のみ、または資格付きではなく、両方ではないオンラインでしか見つかりませんでした。 – Will
関連する問題
- 1. F#Windows資格情報を使用したデータのHTTP要求
- 2. ChallengeHandler.submitChallengeAnswer(資格情報)とWLAuthorizationManager.login(資格情報、SECURITY_CHECK_NAME)の相違点
- 3. AmazonS3Clientと資格情報
- 4. FileServerミドルウェアと資格情報?
- 5. OneLoginとプライベート資格情報
- 6. WCFと合格ウィンドウの資格情報
- 7. 資格情報
- 8. 資格情報
- 9. Go HTTPのNTLM要求のWindowsシステムの資格情報
- 10. SourceTreeはGitHubの資格情報を要求し続ける
- 11. AWS Lambda AWSプロバイダの資格情報を要求するサーバレスデプロイ
- 12. クライエント資格情報乗り換え要求のためのgrantype uber java api?
- 13. 資格情報管理API(資格情報の削除)
- 14. フォルダごとのカスタムユーザの資格情報
- 15. WCF認証で資格情報が要求されない
- 16. IISはログイン資格情報を要求しています
- 17. Kibanaが資格情報を要求しています
- 18. Asp.net Webページがログイン資格情報を要求しない
- 19. レポーティングサービスは資格情報を要求し続ける
- 20. psqlは常に資格情報を要求します
- 21. ローカルの資格情報とクッキー
- 22. Spring VaultとHibernateの資格情報
- 23. Node.jsとawsの資格情報エラー
- 24. 最近のWindowsアップデートと資格情報
- 25. Javaデスクトップアプリケーション(外部DB資格情報)
- 26. WlxSASNotifyとWindows資格情報プロバイダ
- 27. Twitter4Jは、資格情報とキャッチエラー
- 28. AWS SDKに必要な資格情報
- 29. サンドボックスのエラー資格情報?
- 30. 資格情報の配列
[Apache Commons HTTP client](http://hc.apache.org/httpcomponents-client-ga/)のような完全なライブラリを使用しないのはなぜですか? – zack6849
ライブラリには資格情報とデータの両方が一緒に表示されません。 – Will
ユーザー名とパスワードの「文字セット」については、サーバーが要求するもの(https://tools.ietf.org/html/rfc7617#section-3)を使用することをお勧めします。 –