传递用户和密码的HTTP请求

时间:2018-02-07 13:58:54

标签: java html

我目前正在处理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;
}

enter image description here

2 个答案:

答案 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();

之后你可以得到答复。 我希望这会有所帮助。