国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java發(fā)送form-data請(qǐng)求

這篇具有很好參考價(jià)值的文章主要介紹了Java發(fā)送form-data請(qǐng)求。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在Java中發(fā)送form-data請(qǐng)求,可以使用Apache HttpClient或OkHttp這樣的HTTP客戶端庫(kù)來發(fā)送請(qǐng)求。

一、HttpClient

1.添加依賴

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.13</version>
</dependency>

2.代碼

package request;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

import java.io.File;
import java.io.IOException;

public class FormDataExample {
    public static void main(String[] args) throws IOException {
        String  url = "http://127.0.0.1:3000/aaa/fileUpload.jsp";
        MultipartEntityBuilder builder = MultipartEntityBuilder.create();
        builder.addTextBody("text2", "value1");
        builder.addTextBody("text3", "value2");
        builder.addBinaryBody("file1", new File("D:\\fanwei\\學(xué)習(xí)\\工具地址.txt"), ContentType.APPLICATION_OCTET_STREAM, "filename2.txt");

        String StringResult = sendPostFormData(url, builder);

        System.out.println(StringResult);
    }


    /**
     * @param url 請(qǐng)求地址
     * @param builder
     * @return
     */
    public static String  sendPostFormData(String url, MultipartEntityBuilder builder){
        String StringResult = "";
        //不需要手動(dòng)關(guān)閉httpClient
        HttpClient httpClient = HttpClientBuilder.create().build();
        HttpPost httpPost = new HttpPost(url);

        // 構(gòu)建form-data請(qǐng)求體
        HttpEntity entity = builder.build();
        httpPost.setEntity(entity);

        // 發(fā)送請(qǐng)求并獲取響應(yīng)
        HttpResponse response = null;
        try {
            response = httpClient.execute(httpPost);
            HttpEntity responseEntity = response.getEntity();
            StringResult = EntityUtils.toString(responseEntity);
        } catch (IOException e) {
            StringResult = "errorException:" + e.getMessage();
            e.printStackTrace();
        }
        return StringResult;
    }
}

對(duì)于HttpClient對(duì)象,HttpClientBuilder.create().build()創(chuàng)建的實(shí)例是不需要手動(dòng)關(guān)閉的。

在使用HttpClientBuilder創(chuàng)建HttpClient對(duì)象時(shí),不需要手動(dòng)關(guān)閉HttpClient對(duì)象。這是因?yàn)镠ttpClientBuilder在創(chuàng)建HttpClient對(duì)象時(shí),會(huì)自動(dòng)管理底層的連接池和資源釋放。

HttpClientBuilder會(huì)創(chuàng)建一個(gè)CloseableHttpClient的實(shí)例,它實(shí)現(xiàn)了Closeable接口,可以自動(dòng)關(guān)閉相關(guān)資源。當(dāng)不再需要使用HttpClient時(shí),可以讓垃圾回收器自動(dòng)回收HttpClient對(duì)象,并自動(dòng)關(guān)閉底層的連接池和資源。

需要注意的是,如果使用了連接池,關(guān)閉HttpClient并不會(huì)立即關(guān)閉底層的連接池,而是將連接返回給連接池以供重用。連接池會(huì)根據(jù)一定的策略來管理連接的生命周期。因此,關(guān)閉HttpClient并不會(huì)立即關(guān)閉與服務(wù)器的連接,而是將連接返回給連接池以供下次使用。

總結(jié)起來,使用HttpClientBuilder創(chuàng)建的HttpClient對(duì)象不需要手動(dòng)關(guān)閉,它會(huì)自動(dòng)管理底層的連接池和資源釋放。當(dāng)不再需要使用HttpClient時(shí),可以讓垃圾回收器自動(dòng)回收HttpClient對(duì)象。

二、OkHttp

1.添加依賴

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.13</version>
</dependency>

2.代碼

package request;

import okhttp3.*;

import java.io.File;
import java.io.IOException;

public class FormDataExample2 {
    public static void main(String[] args) throws IOException {
        OkHttpClient client = new OkHttpClient();

        // 構(gòu)建form-data請(qǐng)求體
        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("field1", "value1")
                .addFormDataPart("field2", "value2")
                .addFormDataPart("file", "filename.txt",
                        RequestBody.create(MediaType.parse("application/octet-stream"), new File("D:\\fanwei\\學(xué)習(xí)\\工具地址.txt")))
                .build();

        // 構(gòu)建請(qǐng)求
        Request request = new Request.Builder()
                .url("http://127.0.0.1:3000/aaa/fileUpload.jsp")
                .post(requestBody)
                .build();

        // 發(fā)送請(qǐng)求并獲取響應(yīng)
        try (Response response = client.newCall(request).execute()) {
            String responseBody = response.body().string();
            // 處理響應(yīng)
            System.out.println(responseBody);
        }
    }
}

其他發(fā)送請(qǐng)求,請(qǐng)參閱

httpclient 發(fā)送請(qǐng)求_httpclient發(fā)請(qǐng)求_有夢(mèng)想的菜的博客-CSDN博客

文件上傳,請(qǐng)參閱

Java文件上傳_java上傳文件_有夢(mèng)想的菜的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-695727.html

到了這里,關(guān)于Java發(fā)送form-data請(qǐng)求的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java請(qǐng)求調(diào)用參數(shù)格式為form-data類型的接口

    Java請(qǐng)求調(diào)用參數(shù)格式為form-data類型的接口

    接口參數(shù)使用postman調(diào)用如圖所示,只能使用form-data格式調(diào)用 使用java代碼發(fā)送http請(qǐng)求實(shí)現(xiàn)此種方式的接口調(diào)用 特別說明:form的Content-Type屬性為編碼方式 常用有兩種 :application/x-www-form-urlencoded和multipart/form-data,默認(rèn)為application/x-www-form-urlencoded。 x-www-form-urlencoded :當(dāng)action為

    2024年02月12日
    瀏覽(24)
  • HTTP POST請(qǐng)求發(fā)送form-data格式的數(shù)據(jù)

    發(fā)送請(qǐng)求給 第三方服務(wù)的接口 ,且請(qǐng)求報(bào)文格式為 multipart/form-data 的數(shù)據(jù)。支持復(fù)雜類型的參數(shù),包含文件類型 4.1.1、 依賴包 4.1.1、 實(shí)現(xiàn)

    2024年02月12日
    瀏覽(21)
  • JAVA實(shí)現(xiàn)postman form-data和raw方式請(qǐng)求數(shù)據(jù)的代碼

    java raw方式 的實(shí)現(xiàn)代碼如下: Url url = new Url(\\\"\\\"); HttpURLConnection connection = (HttpURLConnection ) url.oepnConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); connection.setRequestMethod(\\\"POST\\\"); connection.setRequestProperty(\\\"Accept\\\",\\\"application/

    2023年04月08日
    瀏覽(21)
  • requests 庫(kù):發(fā)送 form-data 格式的 http 請(qǐng)求 (python)

    requests官方網(wǎng)站地址 requests_toolbelt Python自動(dòng)化 requests 庫(kù):發(fā)送 form-data 格式的 http 請(qǐng)求 requests-toolbelt · PyPI

    2024年02月03日
    瀏覽(22)
  • 使用postman發(fā)送請(qǐng)求,提示Content type ‘multipart/form-data not supported

    使用postman發(fā)送請(qǐng)求,提示Content type ‘multipart/form-data not supported

    1、原因:后端通過@RequestBody 的方式接收參數(shù),不能通過form-data方式傳參,每一個(gè)請(qǐng)求必須是通過實(shí)體對(duì)象進(jìn)行傳參,需要改為使用json傳參

    2024年01月22日
    瀏覽(20)
  • Java實(shí)現(xiàn)以form-data形式文件上傳到服務(wù)器

    Java實(shí)現(xiàn)以form-data形式文件上傳到服務(wù)器

    2024年02月13日
    瀏覽(21)
  • postman 發(fā)送post請(qǐng)求中的x-www-form-urlencoded和form-data的區(qū)別
  • Java使用HttpClient以multipart/form-data向接口上傳文件

    對(duì)接某公司的接口,涉及到資質(zhì)上傳等業(yè)務(wù)。需要對(duì)接他們的上傳附件接口。 JDK1.8 httpclient 4.x 因?yàn)槲曳较到y(tǒng)需要給前端提供上傳接口 使用的 MultipartFile 來接收文件 所以這邊需要MultipartFile轉(zhuǎn)下File文件 一頓操作對(duì)接完事??隙ㄓ信笥褑?為什么不讓前端兄弟直接對(duì)接呢。因?yàn)閷?duì)

    2024年02月05日
    瀏覽(30)
  • postman上傳文件(multipart/form-data請(qǐng)求)

    postman上傳文件(multipart/form-data請(qǐng)求)

    網(wǎng)頁(yè)的form表單中,如果存在上傳文件的表單,則需要將form標(biāo)簽設(shè)置enctype=\\\"multipart/form-data\\\"屬性,意思是將Content-Type設(shè)置成multipart/form-data。 那么如何使用 postman發(fā)送 multipart/form-data請(qǐng)求呢? Content-Type: multipart/form-data; boundary= 表單中的 enctype 屬性規(guī)定在發(fā)送到服務(wù)器之前應(yīng)該如

    2024年02月02日
    瀏覽(32)
  • python-用form-data形式上傳文件請(qǐng)求

    python-用form-data形式上傳文件請(qǐng)求

    雖然現(xiàn)在基本上都約定俗成的接口都用json形式請(qǐng)求 但是不可避免地 有些接口需要傳文件流,此時(shí)就需要用form-data形式上傳了 for.e: 存在以下接口,通過接口創(chuàng)建海報(bào)圖 但需要上傳縮略圖, 此時(shí)接口的Content-Type就不能是application/json,而是multipart/form-data; 參數(shù)格式也是以表單

    2023年04月08日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包