A. android httpclient怎麼接收json數據
android裡面,通過json數據是不會直接返回圖片的,只會返回圖片的url地址。
步驟: 1,通過解析專json數據,獲取到圖片屬的地址。
2,通過圖片的地址,再一次的請求網路(用非同步任務或者hangdler裡面請求網路:比如:
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
BufferedInputStream is = new BufferedInputStream(conn.getInputStream());
)
3 通過BitmapFactory.decodeStream(裡面的參數是一個位元組流),該方法返回的是一個bitmap ,直接用imageview.setimagebitmap()就能展示圖片了。
說明: 在BitmapFactory.decodeStream這里返回的bitmap可以做進一步的優化,比如二次采樣,把獲取的bitmap存sd卡等等。。
B. Android Studio用httpPost向伺服器傳json數據,StringEntity不存在,求高手幫忙
看別人使用的類:主要用到的類有:org.apache.http.client.HttpClient 、org.apache.http.client.methods.HttpPost 和org.json.JSONObject,應該回包含這個答方法的
C. 安卓http請求 發送json數據
用utf8,應該不會亂碼,有中文嗎
D. android使用http怎麼向伺服器獲得數據並用json解析
寫個適配器
下面是代碼:
java">importjava.io.InputStream;
importjava.net.MalformedURLException;
importjava.net.URL;
importjava.util.ArrayList;
importjava.util.List;
importjavax.net.ssl.HttpsURLConnection;
importorg.json.JSONArray;
importorg.json.JSONException;
importorg.json.JSONObject;
importbean.CoureBean;
importtools.StreamHelper;
importandroid.annotation.SuppressLint;
importandroid.app.Activity;
importandroid.content.Context;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.support.annotation.VisibleForTesting;
importandroid.view.LayoutInflater;
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.Adapter;
importandroid.widget.ArrayAdapter;
importandroid.widget.CheckBox;
importandroid.widget.ImageView;
importandroid.widget.ListAdapter;
importandroid.widget.ListView;
importandroid.widget.Switch;
importandroid.widget.TextView;
importandroid.widget.Toast;
{
privateList<CoureBean>list=newArrayList<CoureBean>();
privateListViewlv;
privateHandlerhandler=newHandler(){
e(android.os.Messagemsg){
switch(msg.what){
case1:
StringjsonString=msg.obj.toString();
converData(jsonString);
init();
break;
default:
break;
}
};
};
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView)findViewById(R.id.lvImgList);
getJson();
}
//綁定列表
privatevoidconverData(StringjsonString){
try{
JSONObjectjOb=newJSONObject(jsonString);
JSONArrayjArray=jOb.getJSONArray("Data");
for(inti=0;i<jArray.length();i++){
JSONObjectcurrentItem=jArray.getJSONObject(i);
CoureBeanmodelBean=newCoureBean();
modelBean.setName(currentItem.getString("name"));
modelBean.setImgUrl(currentItem.getString("picSmall"));
list.add(modelBean);
}
}catch(JSONExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
//獲取json數據
privatevoidgetJson(){
newThread(){
@Override
publicvoidrun(){
StringstrUrlString="http://www.imooc.com/api/teacher?type=4&num=30";
try{
URLurl=newURL(strUrlString);
HttpsURLConnectionconn=(HttpsURLConnection)url
.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
intcode=conn.getResponseCode();
if(code==200){
InputStreamis=conn.getInputStream();
StringjsonString=StreamHelper.readInputStream(is);
Messagemsg=newMessage();
msg.what=1;
msg.obj=jsonString;
handler.sendMessage(msg);
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}.start();
}
classViewHolder{
ImageViewimPic;
TextViewtxtName;
}
privatevoidinit(){
ArrayAdapteradapter=newMyAdapter(this,R.layout.list_item,list);
lv.setAdapter(adapter);
}
/**
*自定義適配器(內部類)
*
*@author
*
*/
<CoureBean>{
privateintresourceId;
//構造函數
publicMyAdapter(Contextcontext,intresource,List<CoureBean>objects){
super(context,resource,objects);
resourceId=resource;
}
@SuppressLint("ViewHolder")
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
Viewview;
ViewHolderviewHolder=newViewHolder();
if(convertView==null){
view=LayoutInflater.from(MainActivity.this).inflate(
resourceId,null);//拿到當前行對象
//拿到當前視圖對象裡面的名字叫tvPwdTitle的TextView對象
viewHolder.txtName=(TextView)view.findViewById(R.id.txtName);
viewHolder.imPic=(ImageView)view
.findViewById(R.id.imageView1);
view.setTag(viewHolder);
}else{
view=convertView;
}
//拿到應該放在當前行上的數據
finalCoureBeandataItem=getItem(position);
viewHolder=(ViewHolder)view.getTag();
viewHolder.txtName.setText(dataItem.getName());
returnview;
}
}
}
E. android客戶端與伺服器交互,傳的數據是JSON格式,請問用webservice好呢還是http好呢
http比較好,一般公司都用的是http。對應json來說已盡夠了
F. 怎麼使用android-async-http給後台上傳json數據
一、在項目中搭建環境
1. 導入相關jar包
2. 搭建相關的包和類
3.類中的方法簡單實現
User:
聲明以下屬性,並實現無參構造器和有參構造器,以及各自的get和set方法
UserDao:
UserDaoImpl:
JsonServlet:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 來自於資料庫
UserDao Impl = new UserDaoImpl();
List entities = Impl.findAll();
// 把List集合轉換成一個json的數據格式
JSONArray jsonArray = JSONArray.fromObject(entities);
response.setContentType("application/json");// 響應類型 json的數據
response.getWriter().write(jsonArray.toString());
response.getWriter().close();
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
附上出處鏈接:http://www.2cto.com/kf/201405/304410.html
G. android怎麼使用okhttputils發送json請求數據
服務端是用servlet寫的吧 直接調用response的out輸出即可 response.getWriter().print("20"); 這樣安卓得到的返回值就是20
H. 在android端使用httpclient的execute方法發送一個url,url裡面有各種參數,從服務端返回json數據
參考一下吧
http://blog.csdn.net/wangzhenhua88/article/details/6787328
I. android okhttp post json和get有什麼區別
區別是:
Get:是以實體的方式得到由請求URI所指定資源的信息,如果請求URI只是一個數據產生過程,那麼最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。
Post:用來向目的伺服器發出請求,要求它接受被附在請求後的實體,並把它當作請求隊列中請求URI所指定資源的附加新子項,Post被設計成用統一的方法實現下列功能:
1:對現有資源的解釋
2:向電子公告欄、新聞組、郵件列表或類似討論組發信息。
3:提交數據塊
4:通過附加操作來擴展資料庫
Android系統提供了兩種HTTP通信類,HttpURLConnection和HttpClient。
關於HttpURLConnection和HttpClient的選擇>>官方博客
盡管Google在大部分安卓版本中推薦使用HttpURLConnection,但是這個類相比HttpClient實在是太難用,太弱爆了。
OkHttp是一個相對成熟的解決方案,據說Android4.4的源碼中可以看到HttpURLConnection已經替換成OkHttp實現了。所以我們更有理由相信OkHttp的強大。
OkHttp 處理了很多網路疑難雜症:會從很多常用的連接問題中自動恢復。如果您的伺服器配置了多個IP地址,當第一個IP連接失敗的時候,OkHttp會自動嘗試下一個IP。OkHttp還處理了代理伺服器問題和SSL握手失敗問題。
使用 OkHttp 無需重寫您程序中的網路代碼。OkHttp實現了幾乎和java.net.HttpURLConnection一樣的API。如果你用了 Apache HttpClient,則OkHttp也提供了一個對應的okhttp-apache 模塊。
J. android okhttp怎麼給伺服器傳遞的參數怎麼轉成json
public String androidPost() { String rs = null; String path = "url/Android_JDBC_SH/AndroidLoginAction"; HttpPost hp = new HttpPost(path); //獲取客戶端,用來向伺服器發出請求 DefaultHttpClient hc = new DefaultHttpClient(); try { //Default Constructor taking a name and a value BasicNameValuePair nm = new BasicNameValuePair("name", name); BasicNameValuePair pa = new BasicNameValuePair("password", password); List list = new ArrayList(); list.add(nm); list.add(pa); //構建向伺服器發送的實體 HttpEntity entity = new UrlEncodedFormEntity(list); hp.setEntity(entity); //提交請求,獲取伺服器的響應 HttpResponse response = hc.execute(hp); if (response.getStatusLine().getStatusCode() == 200) { //獲取響應實體 entity = response.getEntity(); rs = EntityUtils.toString(entity); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return rs; }