精华内容
下载资源
问答
  • HttpGet 请求(带参数)

    千次阅读 2021-03-22 11:22:39
    // 创建请求对象 HttpGet httpGet = new HttpGet(sb.toString()); // 设置参数 HttpParams params = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(params, 5000); HttpConnectionParams....

    标签:

    package com.example.util;

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    import java.net.HttpURLConnection;

    import java.net.MalformedURLException;

    import java.net.URL;

    import org.apache.http.HttpEntity;

    import org.apache.http.HttpResponse;

    import org.apache.http.client.ClientProtocolException;

    import org.apache.http.client.HttpClient;

    import org.apache.http.client.methods.HttpGet;

    import org.apache.http.impl.client.DefaultHttpClient;

    import org.apache.http.params.BasicHttpParams;

    import org.apache.http.params.HttpConnectionParams;

    import org.apache.http.params.HttpParams;

    import org.apache.http.util.EntityUtils;

    public class MyUtils {

    private static InputStream result;

    public static InputStream getJson1FromWeb(String url) {

    HttpGet get = new HttpGet(url);

    HttpParams params = new BasicHttpParams();

    HttpConnectionParams.setConnectionTimeout(params, 5 * 1000);

    HttpConnectionParams.setSoTimeout(params, 5 * 1000);

    HttpClient client = new DefaultHttpClient(params);

    HttpResponse response;

    try {

    response = client.execute(get);

    if (response.getStatusLine().getStatusCode() == 200) {

    HttpEntity entity = response.getEntity();

    result = entity.getContent();

    }

    } catch (ClientProtocolException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    return result;

    }

    public static String getJson2FromWeb(String url, String id, int p) {

    StringBuffer sb = new StringBuffer(url);

    sb.append("&catalog_id=" + id);

    sb.append("&pn=" + p);

    String data = "";

    // 创建请求对象

    HttpGet httpGet = new HttpGet(sb.toString());

    // 设置参数

    HttpParams params = new BasicHttpParams();

    HttpConnectionParams.setConnectionTimeout(params, 5000);

    HttpConnectionParams.setSoTimeout(params, 5000);

    // 执行请求的对象

    HttpClient client = new DefaultHttpClient(params);

    // 执行请求镀锡

    try {

    HttpResponse resp = client.execute(httpGet);

    // 判断是否响应成功

    if (resp.getStatusLine().getStatusCode() == 200) {

    // 获取响应 的数据

    HttpEntity entity = resp.getEntity();

    data = EntityUtils.toString(entity, "utf-8");

    }

    } catch (ClientProtocolException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    return data;

    }

    public static String getWeb(String path){

    URL url=null;

    HttpURLConnection connection=null;

    BufferedReader br=null;

    StringBuffer sb=new StringBuffer();

    try {

    url=new URL(path);

    connection=(HttpURLConnection) url.openConnection();

    if(connection.getResponseCode()==200){

    br=new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));

    String str=null;

    while((str=br.readLine())!=null){

    sb.append(str);

    }

    }

    } catch (MalformedURLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    return sb.toString();

    }

    }

    标签:

    展开全文
  • 通过HTTP Get in java下载文件

    千次阅读 2021-03-08 09:47:40
    HttpGet httpGet = new HttpGet(url + "?" + query); HttpResponse response = httpClient.execute(httpGet); System.out.println(response.getStatusLine()); InputStream in = response.getEntity().getContent()...

    我已经写了一个下载Servlet来根据messageID参数返回一个文件。以下是doGet方法。

    @Override

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    // This messageID would be used to get the correct file eventually

    long messageID = Long.parseLong(request.getParameter("messageID"));

    String fileName = "C:\\Users\\Soto\\Desktop\\new_audio1.amr";

    File returnFile = new File(fileName);

    ServletOutputStream out = response.getOutputStream();

    ServletContext context = getServletConfig().getServletContext();

    String mimetype = context.getMimeType("C:\\Users\\Soto\\Desktop\\new_audio1.amr");

    response.setContentType((mimetype != null) ? mimetype : "application/octet-stream");

    response.setContentLength((int)returnFile.length());

    response.setHeader("Content-Disposition", "attachment; filename=\"" + "new_audio.amr" + "\"");

    FileInputStream in = new FileInputStream(returnFile);

    byte[] buffer = new byte[4096];

    int length;

    while((length = in.read(buffer)) > 0) {

    out.write(buffer, 0, length);

    }

    in.close();

    out.flush();

    }然后我写了一些代码来检索文件。

    String url = "http://localhost:8080/AudioFileUpload/DownloadServlet";

    String charset = "UTF-8";

    // The id of the audio message requested

    String messageID = "1";

    //URLConnection connection = null;

    try {

    String query = String.format("messageID=%s", URLEncoder.encode(messageID, charset));

    //URLConnection connection;

    //URL u = new URL(url + "?" + query);

    //connection = u.openConnection();

    //InputStream in = connection.getInputStream();

    HttpClient httpClient = new DefaultHttpClient();

    httpClient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

    HttpGet httpGet = new HttpGet(url + "?" + query);

    HttpResponse response = httpClient.execute(httpGet);

    System.out.println(response.getStatusLine());

    InputStream in = response.getEntity().getContent();

    FileOutputStream fos = new FileOutputStream(new File("C:\\Users\\Soto\\Desktop\\new_audio2.amr"));

    byte[] buffer = new byte[4096];

    int length;

    while((length = in.read(buffer)) > 0) {

    fos.write(buffer, 0, length);

    }

    //connection = new URL(url + "?" + query).openConnection();

    //connection.setRequestProperty("Accept-Charset", charset);

    //InputStream response = connection.getInputStream();

    } catch (MalformedURLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }现在这个代码工作正常。我可以下载音频文件并且它可以正常工作。我想知道的是如何在可能的情况下获取下载文件的名称,而不是将其命名为我自己的名称。另外,是否可以在不需要从流中读取文件的情况下获取文件(也许有些库可以为您做)?我有点想隐藏肮脏的东西。

    谢谢

    展开全文
  • Arduino ESP32 获取网络数据(HTTP GET方式) 本实例介绍,ESP32通过联网,访问指定服务器网站,获取数据。 不需要要额外库,全部使用自带固件的库 访问对象:http://quan.suning.com/getSysTime.do 实例代码 /*...

    Arduino ESP32 获取网络数据(HTTP GET方式)


    本实例介绍,ESP32通过联网,访问指定服务器网站,获取数据。

    在这里插入图片描述

    实例代码

    /**
     * ESP32 HTTP GET方式获取网络数据
    
     *
     */
    
    #include <Arduino.h>
    
    #include <WiFi.h>
    #include <HTTPClient.h>
    
    //填写WIFI入网信息
    const char* ssid     = "MERCURY_D268G";     // WIFI账户
    const char* password = "pba5ayzk"; // WIFI密码
    
    void setup() {
    
        Serial.begin(115200);
        Serial.println();
    
      Serial.print("Attempting to connect to SSID: ");
      Serial.println(ssid);
      WiFi.begin(ssid, password);
    
        for(uint8_t t = 4; t > 0; t--) {
            Serial.printf("[SETUP] WAIT %d...\n", t);
            Serial.flush();
            delay(1000);
        }
    
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        // wait 1 second for re-trying
        delay(1000);
      }
    /* 开始访问指定服务器地址,获取数据  */
      Serial.print("Connected to ");
      Serial.println(ssid);
            HTTPClient http;
            Serial.print("[HTTP] begin...\n");
            http.begin("http://quan.suning.com/getSysTime.do"); //访问服务器地址
    
            Serial.print("[HTTP] GET...\n");
            // start connection and send HTTP header
            int httpCode = http.GET();
    
            // httpCode will be negative on error
            if(httpCode > 0) {
                // HTTP header has been send and Server response header has been handled
                Serial.printf("[HTTP] GET... code: %d\n", httpCode);
    
                // file found at server
                if(httpCode == HTTP_CODE_OK) {
                    String payload = http.getString();
                    Serial.println(payload);
                }
            } else {
                Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
            }
    
            http.end();
    }
    
    void loop() {
        delay(5000);
    }
    
    • 串口打印获取信息
      在这里插入图片描述
    展开全文
  • HTTP get方式传json

    千次阅读 2021-04-21 14:57:15
    这个让人有点懵,一般来说get参数都会直接拼接在url后, 复杂的参数都使用post方式传递,postman可以正常请求,使用hutool工具请求却失败了,网上找了一圈,才摸索出了解决方案 二、尝试的过程 1.postman(成功) 截图如下...


    一、背景?

    最近项目中有个三方接口,需要使用get请求传递json,
    这个让人有点懵,一般来说get参数都会直接拼接在url后, 复杂的参数都使用post方式传递,postman可以正常请求,使用hutool工具请求却失败了,网上找了一圈,才摸索出了解决方案

    二、尝试的过程

    1.postman(成功)

    截图如下(示例):

    在这里插入图片描述

    2.hutool(失败)

    代码如下(示例):

     		HttpRequest get = HttpUtil.createGet(url + "api/token");
    
            Map<String, String> params = new HashMap<>();
            params.put("AppId", appId);
            params.put("AppKey", appKey);
    
            get.body(JSONObject.toJSONString(params), "application/json");
            
            get.execute();
    
    

    上述代码会返回415(为什么明明是get,却提示415呢?),这里有意思的地方在于, 如果我去掉get.body() 这行代码, 他会正常返回没有参数的异常, 所以我推测是hutool在发现请求携带body时, 将get换成post方式了, 而且在fiddler中发现确实如此。

    3.AsyncHttpClient(成功)

    此处参考博客地址
    废话不多说,代码如下

     DefaultAsyncHttpClient asyncHttpClient = new DefaultAsyncHttpClient();
    
            Map<String, String> params = new HashMap<>();
            params.put("AppId", appId);
            params.put("AppKey", appKey);
    
            Request r = new RequestBuilder()
                    .setUrl(url + "api/token")
                    .setBody(JSONObject.toJSONString(params))
                    .addHeader("Content-Type", "application/json")
                    .build();
            ListenableFuture<Response> future = asyncHttpClient.executeRequest(r);
    
            Response response = future.get();
    
            asyncHttpClient.close();
    
    //工具版本
    		<dependency>
                <groupId>org.asynchttpclient</groupId>
                <artifactId>async-http-client</artifactId>
                <version>2.12.3</version>
            </dependency>
    
    

    总结

    首先说明,get方式可以携带body, 传json是没问题的 但是不推荐在定义接口时要求用get接收json,就像大家在吃饭喜欢用筷子而不是勺子,虽然都可以达到目的,不过显而易见"筷子"更受欢迎
    展开全文
  • 响应内容: 以及此时后端显示的错误: 结论就是: http协议是支持GET请求是带请求体的,后端也是可以接受GET请求中的请求体,但是web浏览器会限制GET请求不携带请求体。 解决方案一:就是将GET请求改成POST请求 解决...
  • 下面的第一个代码片段显示了如何使用名为imsi的参数发送HTTP GET请求。在第二个代码片段中,我在服务器端展示了dou-Get函数的实现。我的问题是如何提取服务器代码中的imsi参数并将响应发送回客户端,以便向客户端...
  • 可以肯定的是,您应该从响应的Set-Cookie标头收集Cookie.要在后续请求中发回它们,您应该使用...基本上:// ...// Grab Set-Cookie headers:List cookies = connection.getHeaderFields().get("Set-Cookie");// ...//...
  • Dotnet Core之[HttpGet]多参数 ** 1、用FromRouteAttribute //GET method //single parameter public IActionResult Get(int id) //multiple parameter [HttpGet("{id}/{backendOnly}")] public IActionResult Get...
  • 今日转载一篇文章,起因是最近在做一个APP,后台提供的API接口里用GET方式携带body传参,用postman访问正常,但是在代码中却返回400,经过艰苦的查资料和调试之后,确认http GET方式不建议携带body,今天做记录这篇...
  • http get请求 body有参数

    2020-12-30 16:44:45
    使用AsyncHttpClient,因为...async-http-client 2.2.0 测试demo public static String get(String url, String bodyData) { // 构建请求 AsyncHttpClient asyncHttpClient = new DefaultAsyncHttpClien
  • 1.代码实例如下:public class HttpgetUtils {public static String sendGETRequest(String path, Map params, String ecoding) throws Exception{//拼接GET参数条件StringBuilder url = new StringBuilder(path);...
  • 1.利用Kettle的“自定义常量数据”,“HTTP Client”组件,获取具有一定结构的网页内容,并使用。 2.熟练掌握“自定义常量数据”,“HTTP Client”,“JSON Input”组件的使用,实现网页内容的获取以及解析。 【实验...
  • 问题如何发送一个简单的HTTP GET请求并且取回相应的HTTP响应。设计创建一个WebClient类的实例,然后使用它的DownloadData()方法。方案string uri = "http://server/path/WebForm.aspx";WebClient wc= newWebClient()...
  • 文章目录一、打开node-red二、设置get请求2.1 设置http模块参数2.2 设置 debug 方便调试三、设置 response 参数四、运行测试4.1 携带参数进行测试 一、打开node-red 版本为 0.20.8 二、设置get请求 拉取http模块 ...
  • Java 发送http请求(get、post)

    千次阅读 2021-02-27 21:08:01
    1.情景展示java发送get请求、post请求(form表单、json数据)至另一服务器;可设置HTTP请求头部信息,可以接收服务器返回cookie信息,可以上传文件等;2.代码实现所需jar包:httpcore-4.4.1.jar;httpclient-4.4.1.jar...
  • get方式调用http接口 Header赋参数值

    千次阅读 2021-02-26 20:21:49
    /**195.*发送get请求196.*/publicstaticvoidget(){CloseableHttpClienthttpclient=HttpClients.createDefault();try{//创建httpget.HttpGethttpget=newHttpGet("http://211.156.193.140:8002/cot...
  • Golang http get Content-Encoding:deflate 问题

    千次阅读 2021-12-14 10:17:00
    Golang 默认是请求gzip编码的数据,...这也不算是Golang的问题,毕竟人家只是在遵循http协议,只是服务端没有遵循这种协议而已。 测试python不会有这个问题,因为它的默认Accept-Encoding为gzip,deflate,支持解码这
  • 最近使用了apache olingo这个库,前端发送get请求的时候,有些请求的参数是放在header里面的。常见的get请求就是把参数拼接在url后面,就想了一下这两种方式有什么不一样 网上的相关信息较少(还没时间去看英文文档...
  • http下载文件的本质就是在响应体中拿到响应数据并写入到文件的操作,第二种方式是实现了一个实时显示下载进度的功能 ... resp, err := http.Get(url) if err != nil { panic(err) } defer func() {_ =
  • NACOS SocketTimeoutException httpGet] currentServerAddr:http://localhost:8848, err : connect timed out 原因: bootstrap.yml(bootstrap.properties)用来在程序引导时执行,应用于更加早期配置信息读取,如...
  • } /** * 获得HttpGet对象 * * @param url * 请求地址 * @param params * 请求参数 * @param encode * 编码方式 * @return HttpGet对象 */ private static HttpGet getHttpGet(String url, Map params, String ...
  • httpget请求中的url中添加Object参数

    千次阅读 2021-01-18 20:45:08
    一直以来httpget请求中,都没有尝试带过复杂对象参数,最新在写grpc时, 使用了框架自动转化rpc请求到http请求,参数定义时没有注意复杂度,定义了个对象嵌套对象的请求参数,所以尝试了下载请求的url中携带对象...
  • ESP8266发送HTTP请求GET请求POST请求

    千次阅读 2020-12-19 14:31:03
    请求正文 GET/sample.jspHTTP/1.1 Accept:image/gif.image/jpeg,*/* Accept-Language:zh-cn Connection:Keep-Alive Host:localhost User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0) Accept-Encoding:gzip...
  • Golang http.MethodGet带参数(GET请求)

    千次阅读 2021-01-06 11:34:34
    q.Add(“page_size”,“1000”)就是携带的参数,将拼接在url后面发起... req, _ := http.NewRequest(http.MethodGet, fmt.Sprintf("%s/api/%s/projects/%s/repositories/%s/artifacts", url, version.Version, pro
  • 今天项目遇到一个问题,我们项目用户验证和权限验证的信息(licence)是在http头中设置的,百度了一下,只有ajax才能设置头信息,form表单是无法设置的,但是我突然想起springMVC关于form表单解决put、delete提交方式...
  • 模拟一个请求 Spring @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体...GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。 ...
  • HttpClient中带参数的get请求

    千次阅读 2020-12-21 01:24:55
    直接代码:package cn.itcast.crawler.test;import org.apache.http.HttpEntity;import org.apache....import org.apache.http.client.methods.HttpGet;import org.apache.http.c...
  • } } if (url.contains(Constants.QUESTION)) { httpGet = new HttpGet(url + "&" + EntityUtils.toString(new UrlEncodedFormEntity(paramList, Consts.UTF_8))); } else { httpGet = new HttpGet(url + "?" + ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,192,200
精华内容 1,276,880
关键字:

httpget

友情链接: 1.rar