private void requestNetData () {
try {
    URL url = new URL("http://www.toutiao.com/stream/widget/local_weather/data/?city=%E5%8C%97%E4%BA%AC");
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    urlConnection.setRequestMethod("GET");
    urlConnection.setReadTimeout(5000);
    urlConnection.setConnectTimeout(5000
private void requestNetData () {try { URL url = new URL("http://www.toutiao.com/stream/widget/local_weather/data/?city=%E5%8C%97%E4%BA%AC"); HttpURLConnection urlConnection = (HttpURLConnecti...
HttpURLConnection 的跟随 定向仅是一个指标,实际上它不能帮助您进行“真正的” http 定向,您仍然需要手动 处理 它。 URL obj = new URL(url); HttpURLConnection conn = ( HttpURLConnection ) obj.openConnection(); conn.setInstanceFollowRedirects(tru...
HttpURLConnection 使用中的一个问题,就是当连接到的那个地址 定向到另一个地址时,怎么样获得那个 定向后的地址,弄了一下,找出了方法,结果起先我们两个都没想到,嘿嘿,在此记录一下。 HttpURLConnection 是基于HTTP协议的,其底层通过socket通信实现。下面来看一个例子:   今天跟TiGERTiAN谈到 HttpURLConnection 使用中的一个问题,就是当连接...
* 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @param encode
URLConnection从HTTP 定向到HTTPS  也不知什么原因,公司项目的服务端一直在吸引着大波攻击,于是服务端的同学打算把所有HTTP的请求都换为HTTPS,他们决定兼容旧版本于是就将之前的所有HTTP请求全部 定向到另一个HTTPS请求。 项目请求框架搭建初期,考虑到应用也不会使用太复杂的请求模式,于是就简单使用URLConnection完成服务端交互。服务端一修改,全部请求都失败了
当使用 HttpURLConnection 访问A地址,但是A地址内部会自动 定向到B地址,因为我们是会 HttpURLConnection 方式访问接口,故我们应用无法直接 定向到B地址,此时需要我们通过 HttpURLConnection 获取 定向后的B地址返回给前端,让前端去访问B地址,达到跳转的目的。(对于页面表单访问A地址的话,浏览器会自动帮我们 定向到B地址,完成 定向过程) 一、该方式可以获...
String url ="http://.。。。.com"; // 获取文件流 con = ( HttpURLConnection ) new URL(url).openConnection(); con.setConnectTimeout(15000); con.setReadTimeout(15000); con.setInstanceFollowRedirects(false);
HttpURLConnection 编程基础原理 在Android中, HttpURLConnection 是比较基础的网络编程,因此在入门的时候建议大家学会使用这个编程,有助于大家了解其原理。这里就简单介绍一下,因为我们这篇博客主要解决的问题是如何解决收到结果不是200,-------------- 而是302 定向问题。使用 HttpURLConnection 编程原理我们编程时候遵循一下几个步骤:
### 回答1: HttpURLConnection 是 Java 的标准类库之一,可以用来发送 HTTP 请求。它支持 GET、POST、HEAD、OPTIONS、PUT、DELETE 和 TRACE 方法。可以使用 HttpURLConnection 类来发送 HTTP POST 请求。通常使用 HttpURLConnection 类发送 POST 请求时,需要设置请求头信息和请求参数。下面是一个示例代码: URL url = new URL("http://www.example.com"); HttpURLConnection connection = ( HttpURLConnection ) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.connect(); DataOutputStream out = new DataOutputStream(connection.getOutputStream()); out.writeBytes("param1=value1&param2=value2"); out.flush(); out.close(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String lines; StringBuffer sb = new StringBuffer(""); while ((lines = reader.readLine()) != null) { sb.append(lines); System.out.println(sb.toString()); 以上代码使用了 HttpURLConnection 发送一个 HTTP POST 请求,并设置了一些请求头信息(如 Content-Type)和请求参数。 注意:如果你在使用这个类发送请求时遇到了问题,请检查服务端是否支持该请求方法。 ### 回答2: HttpURLConnection Post是一种与服务器进行HTTP协议通信的方法。它是 HttpURLConnection 的子类,可以方便地发送POST请求并接收服务器响应。要使用 HttpURLConnection 的POST方法,需要设置好URLConnection的请求属性,并根据需要写入请求正文数据,并接收返回的响应数据。 具体实现流程如下: 1. 创建 HttpURLConnection 连接对象,并设置请求的URL地址。 2. 通过setRequestMethod()方法设置POST方式。 3. 设置URLConnection的一些请求属性,如请求超时时间、接收数据超时时间等。 4. 如果需要向服务器发送请求正文数据,则需要在 HttpURLConnection 对象中开启输出流(setDoOutput(true))并写入正文数据(如表单参数、JSON参数等)。 5. 向服务器发送请求,调用 HttpURLConnection 的connect()方法。 6. 接收服务器返回的响应数据,可以通过getInputStream()方法读取响应数据。 7. 如果要读取服务器返回的响应状态码、响应头信息等,可以通过 HttpURLConnection 提供的方法来获取。 使用 HttpURLConnection Post方法要注意以下几点: 1. POST请求发送的参数需要绑定在请求正文中,通过OutputStream将请求正文发送给服务器。 2. 如果需要向服务器发送一个文件,则可以使用multipart/form-data编码方式。 3. HttpsURLConnection是 HttpURLConnection 的子类,支持HTTPS请求。在发送HTTPS请求前需要配置SSLSocketFactory和HostnameVerifier。 总结来说, HttpURLConnection Post方法是一种比较简单易用的与服务器进行HTTP协议通信的方法,可以方便地发送POST请求并接收服务器响应。在实际开发中,如果要进行HTTP协议通信,建议选择使用 HttpURLConnection Post方法。 ### 回答3: HttpURLConnection 是 Android 中的一个网络通信库,可以用来进行网络请求操作。其中,post 方法是 HttpURLConnection 中比较常用的一个方法。 post 方法的作用是向服务器提交数据。与 get 方法不同,post 方法不会将请求参数附加在 URL 中,而是将参数放在请求体中一并提交给服务器。这样设计的好处是可以避免 URL 过长,同时也可以保障数据的隐私性。 在使用 post 方法时,需要注意以下几个问题: 1. 设置请求方法:在创建 HttpURLConnection 对象之后,需要使用 setRequestMethod("POST") 方法将请求方法设置为 POST。 2. 设置请求头:在发送 post 请求之前,需要设置请求头,其中至少包含 Content-Type 和 Content-Length。Content-Type 指明请求体内容类型,微信支付时必须设置为 application/json。Content-Length 则指明请求体内容长度。 3. 设置请求体:用 OutputStream 向请求中写入需要提交的数据。 下面是一个 post 方法的示例代码: URL url = new URL("http://example.com/api"); HttpURLConnection conn = ( HttpURLConnection ) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/json"); conn.setRequestProperty("Content-Length", String.valueOf(postData.length())); OutputStream os = conn.getOutputStream(); os.write(postData.getBytes(StandardCharsets.UTF_8)); os.flush(); os.close(); int responseCode = conn.getResponseCode(); 其中,url 表示请求的地址,postData 是需要提交的数据。 上述代码中,创建 HttpURLConnection 对象之后,我们首先使用 setRequestMethod 方法将请求方法设置为 POST,然后设置了两个请求头,最后将请求体写入到 outputstream 中。 执行完 write 方法之后,需要调用 flush 方法和 close 方法。其中 flush 方法是为了清空 buffer 缓存,将数据真正发送出去,close 方法是为了关闭输出流。 最后,使用 getResponseCode 方法获取服务器返回的状态码。根据不同的状态码,进行相应的 处理 即可。 总的来说, HttpURLConnection 中的 post 方法十分简单,只需要注意请求头和请求体的设置即可。在实际开发中,post 方法通常用于向服务器提交表单数据、文件上传、支付等一系列操作。