gpt4 book ai didi

java - Android 应用程序 - 通过 HTTP Post 的 Google 授权

转载 作者:行者123 更新时间:2023-12-02 08:22:09 25 4
gpt4 key购买 nike

我只是尝试通过 HTTP POST 发送我的 Google 帐户身份验证数据。我已经构建了 HTTPpost(对 ArrayList 名称-值对进行 URL 编码)并执行 HTTPClient 来获取 HTTPResponse。然而,这就是问题开始的地方,每当我尝试调用其关联方法之一(getStatusLine 或 getEntity)时,我返回的 HTTPResponse 似乎都会返回异常。我还尝试通过执行简单的“if (null) else”类型检查来检查“null”响应,但仍然没有运气。

这个问题是因为我使用模拟器吗?

-----更新-----

我发现我收到了 NULL 指针响应,这导致了异常。因此,我访问 Google API 的方式存在问题。 URL 为“https://www.google.com/accounts/ClientLogin”,“Email”和“Passwd”是我用于 POST 请求的两个参数。

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("<URL HERE>");

try {

List<NameValuePair> parameters = new ArrayList<NameValuePair>(2);
parameters.add(<name_value_pair>);
parameters.add(<name_value_pair>);
httppost.setEntity(new UrlEncodedFormEntity(parameters));


HttpResponse response = httpclient.execute(httppost);

StatusLine returned_status = response.getStatusLine();
int status_code = returned_status.getStatusCode();


} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}

}

最佳答案

使用 HttpRequest 代替 httpPost,并且还必须使用名为 Base64 的库和 Android 版本 2.1 及以上

    String data;
HttpParams httpParameters;


HttpClient client;
HttpResponse response;
String userAuth;

httpParameters = new BasicHttpParams();
String auth = android.util.Base64.encodeToString(
(username + ":" + userpwd).getBytes("UTF-8"),
android.util.Base64.NO_WRAP
);
HttpGet request = new HttpGet(StaticURL.uMain+resourceURI);

request.addHeader("Authorization", "Basic "+ auth);

HttpConnectionParams.setSoTimeout(httpParameters, timeoutConnection);
client = new DefaultHttpClient(httpParameters);

response = client.execute(request);
userAuth = EntityUtils.toString(response.getEntity());

System.out.println("Data. in login.."+userAuth);

关于java - Android 应用程序 - 通过 HTTP Post 的 Google 授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5276250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com