使用HttpURLConnection将字符流发送到servlet
此功能将字符串以流的形式发送给一个servlet.(ps:可用于ajax跨域访问)
代码如下:
java 代码
- public String postStringToUrl(String Str, String urlStr){
- BufferedWriter bWriter = null;
- HttpURLConnection urlConn = null;
- String message = Str;
- String target = urlStr;
- String sCurrentLine = "";
- String sTotalString = "";
- int res = 0;
- try{
- byte[] byteBuffer = message.getBytes("GB2312");
- URL httpurl = new URL(target);
- urlConn = (HttpURLConnection)httpurl.openConnection();
- urlConn.setRequestProperty("Content-Type","application/octet-stream");
- urlConn.setRequestProperty("Content-length", "" + byteBuffer.length);
- urlConn.setRequestProperty("pure-data", "yes");
- urlConn.setRequestProperty("Connection","Keep-Alive");
-
- urlConn.setDoOutput(true);
- OutputStream out = urlConn.getOutputStream();
-
- try{
- out.write(byteBuffer);
- }
- finally{
- out.flush();
- out.close();
- message = null;
- target = null;
- }
-
- res = urlConn.getResponseCode();
- if (res == 200) {
- java.io.InputStream is = urlConn.getInputStream();
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(is));
- while ((sCurrentLine = reader.readLine()) != null)
- if (sCurrentLine.length() > 0)
- sTotalString = sTotalString + sCurrentLine.trim();
- String tmpStr = new String(sTotalString.getBytes("GB2312"));
- sTotalString = tmpStr;
- } else {
- sTotalString = "远程服务器连接失败,错误代码:"+res;
-
- }
-
- if (bWriter != null)
- bWriter.close();
-
- }
- catch(Exception e){
- sTotalString = "连接服务器失败.";
- e.printStackTrace();
- }
- return sTotalString;
- }
分享到:
相关推荐
- 在这个例子中,servlet使用了`ObjectInputStream`从请求中读取序列化对象。这是一种常见的数据交换方式,特别是当需要传递复杂对象时。客户端可以通过`ObjectOutputStream`将对象序列化后写入HTTP请求体,服务器...
- **HTTP请求**:使用HttpURLConnection或OkHttp库发送POST请求,将文件作为二进制数据附在请求体中。对于文字,可以将其转换为字符串并放在请求参数里。 - **进度显示**:为了提供用户体验,可以在上传过程中显示...
首先,理解Android与Servlet交互的基本原理:Android客户端通过HTTP或HTTPS协议发送网络请求到Web服务器,服务器上的Servlet接收到请求后进行业务逻辑处理,再将处理结果以HTTP响应的形式返回给Android客户端。...
例如,将一个User对象转换为Json字符串,然后写入到HttpServletResponse的输出流中。 5. **HttpURLConnection使用**:在某些情况下,Servlet可能会作为客户端,通过HttpURLConnection向其他Web服务发起请求。这可以...
例如,可以使用FileOutputStream将接收到的字节流写入到指定的文件中。 5. **具体实现流程**: - 客户端通过HTTP请求发送资源链接和文件名到Servlet。 - Servlet解析请求参数,使用Java反射创建爬虫类实例。 - ...
这通常通过HttpServletResponse对象完成,设置合适的Content-Type为"application/json",然后使用getOutputStream或getWriter方法将JSON字符串写入响应流。 Android客户端接收到服务器的响应后,需要解析JSON数据。...
例如,我们可以使用`ObjectMapper.readTree()`方法将JSON字符串转化为JsonNode对象,然后通过遍历节点进行数据提取;相反,`ObjectMapper.writeValueAsString()`可以将Java对象转换为JSON字符串。 接下来,我们讨论...
- 将这个字符串写入到`DataOutputStream`,然后读取文件内容并写入到输出流。 - 最后,添加一个结束标志,表示请求体的结束。 5. **发送数据并接收响应**: - 调用`flush()`方法确保所有数据都已写入输出流。 -...
以下是一个简单的示例,演示如何使用Java的IO流和URL网络编程发送GET请求到Tomcat服务器: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import...
5. **解析JSON**:接收到的响应通常是JSON格式的字符串,使用JSON库将其解析成Java对象,便于后续处理。 6. **关闭连接**:完成操作后,记得关闭连接以释放资源。 在提供的压缩文件`data-request`中,可能包含示例...
5. 发送请求:对于POST请求,需写入请求体数据,使用`connection.getOutputStream()`获取输出流并写入数据。 6. 获取响应:调用`connection.getInputStream()`获取输入流,读取服务器返回的数据。 7. 关闭连接:使用...
在Android开发中,有时我们需要将数据,如文件或者表单数据,从客户端(手机应用)发送到自定义的服务器端进行处理。这个过程通常涉及到HTTP请求的POST方法,因为POST可以携带大量数据,包括文件。在这个场景下,...
- 使用`HttpURLConnection`或`AsyncTask`进行网络请求:Android客户端通常通过网络API(如`HttpURLConnection`或第三方库如Volley、Retrofit等)来发起HTTP请求,将图片文件上传到服务器。 - 图片文件读取:在...
将待发送的消息编码为UTF-8格式,通过输出流发送到服务器。 5. **接收服务器响应**: ```java InputStream is = conn.getInputStream(); System.out.println(is.available()); ``` 通过输入流获取服务器返回...
Android客户端会将数据序列化为JSON字符串,发送到服务器,服务器再将数据库结果转换为JSON并返回给客户端。 在实际开发中,我们还需要考虑错误处理、日志记录、性能优化等方面。例如,使用异步处理网络请求以避免...
在Android前端开发中,我们通常使用`HttpURLConnection`或第三方库如`OkHttp`来实现POST请求,将数据以键值对形式封装到请求体中发送。 处理服务器乱码问题是一个常见的挑战,尤其在涉及中文字符时。在GET请求中,...
以下是一个基本的使用HttpURLConnection的示例: ```java URL url = new URL("http://yourserver.com/upload"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST...
1. 流的概念:输入流、输出流,字节流与字符流的区别。 2. 文件操作:读写文件,以及BufferedReader和FileWriter等类的使用。 3. 转换流:InputStreamReader与OutputStreamWriter的作用,以及编码与解码。 五、...
- HTTP客户端库:如Apache HttpClient或Java内置的`java.net.HttpURLConnection`,用于将图片数据发送到服务器。 - RESTful API:多数情况下,服务器端会有对应的REST接口接收图片,使用HTTP的POST或PUT方法进行...
本文将详细介绍如何在客户端使用Eclipse开发的Android程序与服务器端使用MyEclipse开发的环境之间实现图片上传功能。 首先,我们需要理解客户端部分,即Android应用的开发。Eclipse是Android开发的经典IDE,它提供...