-
doHttpClientGet() +注释查看全部
-
doHttpClientPost()查看全部
-
doHttpClientGet()查看全部
-
字符转码,解决中文乱码查看全部
-
servlet程序查看全部
-
doPost() 1查看全部
-
doGet() 放在run方法中查看全部
-
摘自评论区: AS要使用这两个过时包可以在Gradle(Module:app)中做如下尝试: 首先在android{}里添加如下内容: android { useLibrary 'org.apache.http.legacy' packagingOptions{ exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } 然后在dependencies{}中添加这两个包: dependencies { compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.4' compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.4' }查看全部
-
通过 HttpClient 上传文件的实现步骤 1. 导入jar包:将 httpcore-4.4-beta1.jar 和 httpmime-4.4-beta1.jar 拷贝到项目的 libs 目录下。 给项目配置 Java Build Path,在libraries 一栏选择“Add JAEs”--> 选择项目的libs目录下的jar包(就是刚才那两个),点击OK --> 点击OK,就可以了。 2. 将上节课的 UploadThread 的 run()方法内部代码剪切到新建的方法: private void httpUpload(){}里面。目的是要与新的方法做一下对比。 3. 再定义一个方法,通过HttpClient上传文件。如图,是 uploadHttpClient() 的编写 4. 在原来的run()中,只调用 uploadHttpClient()。 通过对比,可以很明显的发现,通过 HttpClient 实现文件上传要比之前的方法(现在写在httpUpload()里面)要简单。无需自己去封装请求协议(封装http协议很容易出错,必须严格按照格式编写)。所以,用 HttpClient 开发是比较快捷方便的,代码量也比较少,主要是创建 MultipartEntity 和 FileBody 对象,将 FileBody 添加到 MultipartEntity中。查看全部
-
使用浏览器(本例是IE浏览器)的开发者选项查看在上传文件的过程中,请求正文的格式是怎么样的。 然后严格按照这中格式去拼装请求的实体数据,尤其是在本例中,末尾的边界比开头的边界要多出一个“--”的前缀和后缀,很容易被遗漏(一旦遗落,服务器是无法识别的)。另外也必须注意到换行,前面是换一行,后面是换两行。这些细节都不允许有误。 在Content-Description当中,需要使用转义字符“\”去转义引号。 相关代码(数据的拼装)如下: String boundary="---------------------------7de2c25201d48"; String prefix="--"; // 定义前缀(后缀) String end="/r/n"; conn.setRequestProperty("Content-Type","multipart/form-data;boundary"+boundary); // 通过 multipart 协议向服务器发送数据 // 创建输出流对象 DataOutputStream out = new DataOutputStream(conn.getOutputStream()); out.writeBytes(prefix+boundary+end); out.writeBytes("Content-Description:form-data;name=\"file\";filename=\""+"Sky.jpg"+"\""+end); out.writeBytes(end); 。。。接下来的部分就是实体数据。查看全部
-
Servlet的编写(文件上传) 注意这里的文件类型为“Part”。 part.write(); 指定文件保存的名称。查看全部
-
服务器首页的编写查看全部
-
模仿迅雷多线程下载 1. Http协议字段 Range "bytes=" + start + "-" + end,向服务器请求指定长度的流信息。 2. RandomAccessFile 设置写入的位置 3. 开启线程发送网络请求查看全部
-
在手机端解析服务器的xml文件,run()方法的部分编写: XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.newPullParser(); parser.setInput(in,"utf-8"); //解析输入流 /* 小知识:pull解析是基于事件驱动 */ int eventType = parser.getEventType(); //获取事件类型 final List<Girl> list = new ArrayList<Girl>(); Girl girl = null; //根据事件类型进行处理 while (eventType != XmlPullParser.END_DOCUMENT){ //END_DOCUMENT 文档的结束位置 String data = parser.getName(); //获取xml文件中的标签名 switch (eventType){ // 根据事件类型进行处理 case XmlPullParser.START_TAG: if ("girl".equals(data)){ //如果起始标签是“girl”,则创建Girl对象 girl = new Girl(); } if ("name".equals(data)){ //如果起始标签是“name”,则给girl赋值 girl.setName(parser.nextText()); //parser.nextText取出当前标签对应的值 } if ("age".equals(data)){ girl.setAge(Integer.parseInt(parser.nextText())); } 。。。依此类推 case XmlPullParser.END_TAG: if ("girl".equals(data) && girl!=null){ list.add(girl); } break; } eventType = parser.next(); //开始下一次循环 } 然后通过 handler 向主线程发送消息,更新UI。查看全部
-
Json是一种轻量级的数据交换格式,它是基于JavaScript的一个子集。 Json的格式:一个花括号,里面指定一个名和一个值就可以了,例如: {"name":"Lucy"} 实际上的格式是非常多样、非常灵活的。 --------------- 如图是添加 json 信息的部分代码查看全部
举报
0/150
提交
取消