我目前正在处理HTTP请求,到目前为止它工作得非常好, 现在有一个验证窗口,我想知道如何通过 用户名和密码,无需添加外部jar,如Appache HTTP Client。
使用
进行基本身份验证 username:password@exampleUrl.com
没用。
我的代码到目前为止:
private String[][] content;
public String[][] sendRequest(String urlPart) {
try {
String url = "http://exampleurl.com"+urlPart;
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//convert response
JSONObject myresponse = new JSONObject(response.toString());
JSONObject d_object = new JSONObject(myresponse.getJSONObject("d").toString());
JSONArray results = new JSONArray(d_object.getJSONArray("results").toString());
content = new String[results.length()][2];
for (int i = 0; i < results.length(); i++)
{
JSONObject stereo = results.getJSONObject(i);
content[i][0] = stereo.getString("RET_NAME");
content[i][1] = stereo.getString("RET_VALUE");
}
} catch (Exception e) {
e.printStackTrace();
}
return content;
}
答案 0 :(得分:0)
看起来像基本身份验证。凭证将与“授权”标题一起发送。因此,从技术上讲,如果您不想使用其他便利选项,则需要使用这些标头。 (如HTTP客户端)
答案 1 :(得分:0)
您可以在这里找到一些解决方案: Http Basic Authentication in Java using HttpClient
你需要&#34; DefaultHttpClient&#34;并设置&#34; Credential&#34;对于身份验证和帖子是。
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
new UsernamePasswordCredentials("test1", "test1"));
HttpPost httppost = new HttpPost("http://host:post/test/login");
HttpResponse response;
response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
之后你可以得到答复。 我希望这会有所帮助。