gpt4 book ai didi

android - 使用http post params android的基本身份验证

转载 作者:行者123 更新时间:2023-11-29 14:51:00 29 4
gpt4 key购买 nike

我通过传递用户名和密码进行基本身份验证,然后使用 BasicNameValuePair 发送 post 参数以获取服务的响应。

我的方法:

public StringBuilder callServiceHttpPost(String userName, String password, String type)
{

// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(WEBSERVICE + type);



HttpResponse response = null;

StringBuilder total = new StringBuilder();

try {

URL url = new URL(WEBSERVICE + type);

/*String base64EncodedCredentials = Base64.encodeToString((userName
+ ":" + password).getBytes(), Base64.URL_SAFE
| Base64.NO_WRAP);*/

String base64EncodedCredentials = "Basic " + Base64.encodeToString(
(userName + ":" + password).getBytes(),
Base64.NO_WRAP);


httppost.setHeader("Authorization", base64EncodedCredentials);

// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("day", Integer.toString(2)));
nameValuePairs.add(new BasicNameValuePair("emailId", "usertest@gmail.com"));
nameValuePairs.add(new BasicNameValuePair("month", Integer.toString(5)));
nameValuePairs.add(new BasicNameValuePair("year", Integer.toString(2013)));

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Execute HTTP Post Request
response = httpclient.execute(httppost);

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

HttpEntity entity = response.getEntity();

if (entity != null) {
try {
InputStream instream = entity.getContent();

String line = "";


// Wrap a BufferedReader around the InputStream
BufferedReader rd = new BufferedReader(new InputStreamReader(instream));

// Read response until the end
while ((line = rd.readLine()) != null) {
total.append(line);
}

} catch (IllegalStateException e) {

e.printStackTrace();
} catch (IOException e) {

e.printStackTrace();
}
}


return total;
}

但我总共得到了这个:

 <html><head>   <title>Status page</title></head><body><h3>Invalid json representation of content</h3><p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">here</a>.<br>Please continue your visit at our <a href="/">home page</a>.</p></body></html>

最佳答案

这是怎么做的:

public String callServiceHttpPost(String userName, String password, String type)
{

// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(WEBSERVICE + type);

String responseBody = "";

HttpResponse response = null;

try {

String base64EncodedCredentials = "Basic " + Base64.encodeToString(
(userName + ":" + password).getBytes(),
Base64.NO_WRAP);


httppost.setHeader("Authorization", base64EncodedCredentials);

httppost.setHeader(HTTP.CONTENT_TYPE,"application/json");

JSONObject obj = new JSONObject();

obj.put("day", String.valueOf(2));
obj.put("emailId", "userTest@gmail.com");
obj.put("month", String.valueOf(5));
obj.put("year", String.valueOf(2013));


httppost.setEntity(new StringEntity(obj.toString(), "UTF-8"));

// Execute HTTP Post Request
response = httpclient.execute(httppost);

if (response.getStatusLine().getStatusCode() == 200) {
Log.d("response ok", "ok response :/");
} else {
Log.d("response not ok", "Something went wrong :/");
}

responseBody = EntityUtils.toString(response.getEntity());

} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
catch (JSONException e) {
e.printStackTrace();
}

return responseBody;
}

关于android - 使用http post params android的基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17971537/

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