身份验证错误:无法应对任何这些挑战:{} Android - 401未经授权
在Android上使用带有DefaultHttpClient的HttpPost时,我已经从此链接验证错误中引用了参考
我正在使用Drupal支持的Android应用程序.在那里我将数据从Android应用程序发送到drupal网站 - 以JSON格式的webservice.现在我可以从Drupal webservice读取JSON数据并将其写入我的android应用程序中.但是面对来自android的drupal的写作问题,它会生成带有状态代码的响应
401未经授权
从Android原生应用程序它生成401,而从phonegap-从Android启动AJAX请求它完美工作并在drupal网站上写一篇文章或页面.这意味着网络服务工作完美
我的phonegap Android应用程序工作完美有Android本机JAVA应用程序的问题我在Android2.3.4上运行我的Android应用程序 - >三星Galaxy S Plus - 三星GT-I9001
这是我的java android代码.
==============================
String url = "XXX";
strResponse1 = makeWebForPostIdea(url,title,body);
public static String makeWebForPostIdea(String url, String title,String body)
{
JSONStringer jsonobject = null;
JSONObject json = null;
JSONObject jsonnode = null;
DefaultHttpClient client = new DefaultHttpClient();
Credentials creds = new UsernamePasswordCredentials("username", "password");
client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), creds);
HttpPost post = new HttpPost(url);
System.out.println("value of the post =============> "+post);
try …Run Code Online (Sandbox Code Playgroud) 让我来描述我的应用程序,我从网站JSON url(Drupal网站)获取数据,数据是JSON格式.在我的应用程序登录功能完美.&user在服务器上验证.我也从服务器获取其他数据(JSON url)并在我的android应用程序中显示. 现在,问题是我无法访问需要登录的页面的JSON数据,因为我的登录不是在整个Android应用程序中维护.
我搜索了stackoverflow和谷歌我得到了这些链接并试过但不知道如何在我的代码中使用它们:http: //hc.apache.org/httpcomponents-client-ga/tutorial/html/statemgmt.html
这是来自drupal站点而没有登录的Empty JSON.
{
"nodes": []
}
Run Code Online (Sandbox Code Playgroud)
这是来自drupal 站点的JSON- 登录后(http://www.mywebsite.com/user/login)并在网站上重新加载页面http://www.mywebsite.com/myaccount-page - 在计算机webbrowser中.表示计算机Web浏览器自动维护登录会话.
{
"nodes": [
{
"node": {
"Uid": "51",
"Username": "anand",
"Name": "anand",
"Address": "\n\tAt- vadodara Nr. Kareli Baugh",
"Date of Birth": "1998-08-20",
"Occupation": "student",
"Member Since": "36 weeks 6 days"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
但在Android应用程序中它不会自动执行此操作. 所以我想在Android中维护这个会话,这样我就可以登录android应用程序,登录后重定向到另一个页面活动并在那里获取JSON数据. 这是我的代码:
LoginActivity.java
public void onClick(View v) {
String uName = editUser.getText().toString();
String Password …Run Code Online (Sandbox Code Playgroud)