BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #17351同步于 2014/11/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

测试论坛API,返回码是401,请问为什么

wislov
2014/11/1镜像同步31 回复
用http://guest:@nforum.byr.edu.cn/byr/api/widget/topten.json测试论坛api,返回码为什么是401啊? package com.example.byrclient; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.json.JSONArray; import org.json.JSONObject; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends ActionBarActivity implements OnClickListener{ public static final int SHOW_RESPONSE = 0; private Button sendRequest; private TextView responseText; @Override public void onClick(View v) { if(v.getId() == R.id.send_request) { Log.d("MainActivity", "onCLick"); sendRequestWithHttpClient(); } } private Handler handler = new Handler() { public void handleMessage(Message msg) { switch(msg.what) { case SHOW_RESPONSE: String response = (String)msg.obj; responseText.setText(response); } } }; private void sendRequestWithHttpClient() { new Thread(new Runnable() { @Override public void run() { try { Log.d("MainActivity", "sendRequest"); HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet("http://guest:@nforum.byr.edu.cn/byr/api/widget/topten.json"); //HttpGet httpGet = new HttpGet("http://www.baidu.com"); HttpResponse httpResponse = httpClient.execute(httpGet); Log.d("MainActivity", "" + httpResponse.getStatusLine().getStatusCode()); if(httpResponse.getStatusLine().getStatusCode() == 200) { Log.d("MainActivity", "success"); HttpEntity entity = httpResponse.getEntity(); String response = EntityUtils.toString(entity, "utf-8"); parseJSONWithJSONObject(response); } } catch(Exception e) { Log.d("MainActivity", "exception"); e.printStackTrace(); } } }).start(); } private void parseJSONWithJSONObject(String jsonData) { Log.d("MainActivity", "parseJSONWithJSONObject"); try { JSONArray jsonArray = new JSONArray(jsonData); for(int i=0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); String name = jsonObject.getString("name"); String title = jsonObject.getString("title"); String time = jsonObject.getString("time"); Log.d("MainActivity", "name is " + name); Log.d("MainActivity", "title is " + title); Log.d("MainActivity", "time is " + time); } } catch(Exception e) { e.printStackTrace(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sendRequest = (Button)findViewById(R.id.send_request); responseText = (TextView)findViewById(R.id.response); sendRequest.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
sollian机器人#1 · 2014/11/1
401错误是未授权,即没有登录
wislov机器人#2 · 2014/11/1
但是用的guest,应该不用登陆吧 【 在 sollian 的大作中提到: 】 : 401错误是未授权,即没有登录
icyfox机器人#3 · 2014/11/1
必须登录 用户名guest 密码留空
sollian机器人#4 · 2014/11/1
你在浏览器上访问那个网址试试就知道怎么回事了。 【 在 wislov 的大作中提到: 】 : |但是用的guest,应该不用登陆吧 ☆爱邮☆ 一生有你
sollian机器人#5 · 2014/11/1
那个网址用代码访问貌似行不通,身份验证需要其他方式 【 在 wislov 的大作中提到: 】 : |但是用的guest,应该不用登陆吧 ☆爱邮☆ 一生有你
wislov机器人#6 · 2014/11/1
浏览器访问返回一个json对象形式的字符串啊 【 在 sollian 的大作中提到: 】 你在浏览器上访问那个网址试试就知道怎么回事了。 【 在...
wislov机器人#7 · 2014/11/1
请问密码怎么留空啊,对这个不熟 【 在 icyfox 的大作中提到: 】 必须登录 用户名guest 密码留空 我不编写代码,...
sollian机器人#8 · 2014/11/1
不是会有个身份确认框的吗 【 在 wislov 的大作中提到: 】 : |浏览器访问返回一个json对象形式的字符串啊 : | : |你在浏览器上访问那个网址试试就知道怎么回事了。 : |【 在... ☆爱邮☆ 一生有你
wislov机器人#9 · 2014/11/1
没有啊 【 在 sollian 的大作中提到: 】 不是会有个身份确认框的吗 【 在 wislov 的大作...