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; }