android - 如何使用http header 发送http请求

标签 android

提前致谢...

我正在使用此代码在 http 请求中设置 http header 以验证 url..

但我认为有些问题导致我无法收到回复...

响应仍然像“需要授权”...

httpParameters = new BasicHttpParams();
String auth = android.util.Base64.encodeToString(
    ("florin999@zitec.ro" + ":" + "test2323" + ":" + "zitec"
    + ":" + "7716099f468cc71670b68cf4b3ba545c5760baa7")
    .getBytes("UTF-8"), android.util.Base64.NO_WRAP);

HttpConnectionParams.setSoTimeout(httpParameters, 0);
client = new DefaultHttpClient(httpParameters);
String getURL = "URL here";
get = new HttpGet(getURL);
get.addHeader("Authorization", "Basic "+ auth);
// get.addHeader("X-ZFWS-Accept", "text/json");

HttpResponse responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null) {
    //do something with the response
    //Toast.makeText(Login.this.getApplicationContext(),EntityUtils.toString(resEntityGet), Toast.LENGTH_SHORT).show();
    String s = EntityUtils.toString(resEntityGet);
    tv1.setText(s);
}
}catch(Exception e){
}

请尽快帮助我

最佳答案

您的代码没问题。您有正确的 http 客户端设置和正确添加的 header 。但。您的基本身份验证是错误的。标题键(身份验证)是正确的,但值应该是 Basic + Base64.encode(username+":"+pass)

还有一个替代方案是下面的代码:

 httpclient.getCredentialsProvider().setCredentials(
                new AuthScope(targetHost.getHostName(), targetHost.getPort()),
                new UsernamePasswordCredentials("username", "password"));

目标主机名可能为空且端口为 -1。

但是如果您使用的是 url 连接,那么您将无法使用这个,因此 header 也是可以接受的。

编辑:

这是您的问题:

String auth = android.util.Base64.encodeToString(
    ("florin999@zitec.ro" + ":" + "test2323" + ":" + "zitec"
    + ":" + "7716099f468cc71670b68cf4b3ba545c5760baa7")
    .getBytes("UTF-8"), android.util.Base64.NO_WRAP);

这些串联是什么??

基本身份验证意味着添加一个 base64 编码的授权 header ,该 header 由单词 "Basic "+ Base64.encodeToString("yourUsername"+":"+"yourPassword)

另一种方法是以相同的方式添加我粘贴在顶部的关于凭据提供程序的方法

关于android - 如何使用http header 发送http请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6394181/

相关文章:

android - TextView 不显示

android - LinearLayout layout_weight = 1, layout_height=0dp only 只在预览时有效?

android - IOS 和 Chrome 中的 Dart 语言支持

java - 我应该升级JAVA版本Mac OS X来进行android开发吗

Android NDK 和 pthread

android - 如何通过改造获取数据并保存到数据库

android - 找不到该平台可运行的导出预设

android - React Native如何获取App启动源?

java - 安卓错误 : The RealmClass annotation does not support nested classes

javascript - 在Android运行时访问浏览器的DOM内容