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

vue如何通過$http的post方法請(qǐng)求下載二進(jìn)制的Excel文件

這篇具有很好參考價(jià)值的文章主要介紹了vue如何通過$http的post方法請(qǐng)求下載二進(jìn)制的Excel文件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

方式一:?jiǎn)为?dú)接口,接口封裝 特定的service.js

1.下載

//下載
export function getReportTemplate(){
    return new Promise((resolve, reject) => {
        axios({
            method: 'post',
            url: '/fas/engine/web/fund/final/template',
            responseType: "blob",
            headers: {
                'Content-Type': 'application/json;charset=UTF-8',
            },
        }).then((res) => {
            resolve(res)
        }).catch(error => {
            reject(error)
        });
    })
}

使用此function

//下載上報(bào)的模板
uploadTemplate(){
    getReportTemplate().then((res) => {
        console.log("getReportTemplate",res);
        var blob = new Blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'})
        var downloadElement = document.createElement('a')//創(chuàng)建一個(gè)a 虛擬標(biāo)簽
        var href = window.URL.createObjectURL(blob) // 創(chuàng)建下載的鏈接
        downloadElement.href = href;
        downloadElement.download = "基金預(yù)算編報(bào)模板"; // 下載后文件名
        document.body.appendChild(downloadElement)
        downloadElement.click() // 點(diǎn)擊下載
        document.body.removeChild(downloadElement) // 下載完成移除元素
        window.URL.revokeObjectURL(href) // 釋放掉blob對(duì)象
    });
},

2.上傳

//上傳
export function getReport(formData){
    return new Promise((resolve, reject) => {
        axios({
            method: 'post',
            url: '/fas/engine/web/fund/budget/addReport',
            data: formData,
            headers: {
                'Content-Type': 'multipart/form-data'
            }
        }).then((res) => {
            resolve(res)
        }).catch(error => {
            reject(error)
        });
    })
}

使用此function,?test.vue

<template>
  <el-dialog :destroy-on-close="true" :close-on-click-modal="false" :title="title" :visible.sync="dialogVisible" @closed="closed">
    <el-upload style="width:100%"
          ref="upload"
          class="upload-demo"
          drag
          accept=".xlsx"
          :limit="limit"
          action=""
          :show-file-list="false"
          :on-change="handleChange"
          :on-remove="handleRemove"
          :http-request="handleUpload"
          :on-exceed="handleExceed"
          :file-list="fileList"
          :before-upload="beforeUpload"
          :auto-upload="false"
          >
          <i class="el-icon-upload" v-show="!uploadFlag"></i>
          <div class="el-upload__text" v-show="!uploadFlag">將文件拖到此處,或<em>點(diǎn)擊上傳</em></div>
          <div class="el-upload__text" v-show="!uploadFlag">支持格式.xlsx且不超過10MB!</div>
          <div class="my-el-upload__text" v-show="uploadFlag">
            <span class="filename">{{fileName}}</span> {{fileSize}}
              <br/>
              <br/>
            <span class="cx">重選</span>
          </div>
          <div class="el-upload__tip" slot="tip">
            <div>導(dǎo)入說明:</div>
            <div>1.請(qǐng)確定使用最新版本導(dǎo)入數(shù)據(jù),否則會(huì)提交失敗。</div>
            <div>2.請(qǐng)按模板中的約束條件操作,否則會(huì)提交失敗。</div>
          </div>
        </el-upload>
    <span slot="footer" class="dialog-footer">
      <!-- <el-button size="mini" @click="dialogVisible = false">取消</el-button> -->
      <el-button size="mini" type="primary" @click="submitUpload()">提交</el-button>
    </span>
  </el-dialog>
</template>

<script>
import { Message } from "element-ui";
import {getReport} from '@/services/fumtService/fundRunManage/fundCalFormulationService';
import { formatBytes } from "@/utils/util";
export default {
  name: "fundCalUpload",
  data() {
    return {
      dialogVisible: false,
      editForm:{},
      limit:1,
      uploadFlag:false,
      fileList: [
        // {name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}
      ],
      title:'',
      fileName:'',
      fileSize:'',
    };
  },
  methods: {
    beforeUpload(file) {
      // console.log(file);
      // var testmsg = file.name.substring(file.name.lastIndexOf('.')+1);
      // const extension = testmsg === 'xlsx';
      // const isLt10M = file.size / 1024 / 1024 < 10;
      // if(!extension) {
      //   Message.error('上傳文件只能是 .xlsx 格式');
      // }
      // if(!isLt10M) {
      //   Message.error('上傳文件大小不能超過 10MB!');
      // }
    },
    submitUpload() {
        if(!this.uploadFlag){
            Message.error("請(qǐng)先選擇文件!");
        } else{
            this.$refs.upload.submit();
        }
    },
    handleRemove(file, fileList) {
        this.uploadFlag = false
    },
    handleChange(file, fileLists){
      console.log("----------file",file);
      console.log("----------fileLists",fileLists);
        var testmsg = file.name.substring(file.name.lastIndexOf('.')+1);
        const extension = testmsg === 'xlsx';
        const isLt10M = file.size / 1024 / 1024 < 10;
        if(!extension) {
          Message.error('上傳文件只能是 .xlsx 格式');
        }
        if(!isLt10M) {
          Message.error('上傳文件大小不能超過 10MB!');
        }
        if(extension && isLt10M){
          this.fileName=file.name;
          this.fileSize=formatBytes(file.size,2);
          this.uploadFlag = true;
        }
        return extension && isLt10M;
    },

    handleUpload(file) {
      let formDatas = new FormData();
      formDatas.append("file", file.file);
      formDatas.append("rid", this.editForm.rid);//這"file" 代表參數(shù)名
      // formDatas.append("user_id", 18); //把后端需要參數(shù)全部用這個(gè)形式push進(jìn)去
      getReport(formDatas).then((res) => {
        Message.success('上報(bào)成功');
        this.dialogVisible = false;
      }).catch((err)=>{
        Message.error(err);
      })
      
    },
    handleExceed(files, fileList) {
      this.handleChange(files[0], fileList);
      // this.$message.warning(`當(dāng)前限制選擇 1 個(gè)文件,本次選擇了 ${files.length} 個(gè)文件,共選擇了 ${files.length + fileList.length} 個(gè)文件`);
      // Message.warning(`當(dāng)前限制選擇 1 個(gè)文件!`);
    },
    handleClose: function (done) {
        let self = this
        Bus.$emit("delCurrentTab", "businessQuery/CntrDetail");
    },
    closed(){
      this.uploadFlag=false;
      this.fileList= [];
      this.title='';
    },
    show(data,title) {
      this.title=title;
      this.dialogVisible = true;
      this.editForm = JSON.parse(JSON.stringify(data));
    },
    submitForm(){
      this.$refs.upload.submit();
    }
  },
};
</script>

<style scoped lang="less">
/deep/ .el-form-item__content {
  width: 100%;
}

/deep/ .el-upload{
  width: 100%;
}
/deep/ .el-upload-dragger{
  width: 100%;
}
.my-el-upload__text:focus{
  outline: none!important;
}
.my-el-upload__text{
  // outline: none!important;
  margin-top:50px;
  color:#606255;
  .filename{
    margin-right: 20px;
    color: #303133;
    text-decoration: underline;
  }
  .cx{
    color: #1b65b9;
  }
}

</style>

方式二、封裝通用的底層的service.js

重點(diǎn):

instanceName: "exportExcel",導(dǎo)出excel文件

instanceName: "downloadLog",下載.log后綴的txt文件

// 可聲明axios的default配置
export const defaults = defineRequestConfig([
  {
    /**
     * 對(duì)參數(shù) `params` 進(jìn)行序列化
     * axios 默認(rèn)做參數(shù)序列化時(shí)會(huì)進(jìn)行encode 導(dǎo)致某些接口中文參數(shù)問題,暫時(shí)使用外部覆蓋方式解決
     */
    paramsSerializer: (params) => {
      return qs.stringify(params, { arrayFormat: 'repeat', encode: false })
    },
    // 多實(shí)例配置
    interceptors: {
      request: {
        // 設(shè)置請(qǐng)求頭信息
        onConfig: (config) => {
          config.headers.Accept = 'application/json'
          config.headers['Content-Type'] = 'application/json'
          config.headers['X-Requested-With'] = 'XMLHttpRequest'
          if (!config.data) config.data = {}
          return config
        }
      },
      response: {
        // 請(qǐng)求失敗
        onError: (error) => {
          const { response } = error
          const { data } = response

          // 處理請(qǐng)求錯(cuò)誤的返回結(jié)果
          const errorObj = {
            status: response?.status,
            statusText: response?.statusText,
            errorCode: data?.errorCode ?? data?.error,
            errorMessage:
              data?.errorMessage ?? data?.message ?? data?.error ?? data
          }

          // 判斷登錄超時(shí)
          if (response && response.status === 401) {
            console.error('登錄超時(shí)', response)
            const loginUrl = response?.headers?.loginurl || ''

            if (loginUrl) {
              // 跳轉(zhuǎn)登錄頁
              window.location.href = loginUrl
              return Promise.reject(error)
            } else {
              // 頁面刷新
              window.location.reload()
              return Promise.reject(error)
            }
          }

          return Promise.reject(errorObj)
        }
      }
    }
  },
  {
    paramsSerializer: (params) => {
      return qs.stringify(params, { arrayFormat: 'repeat', encode: true })
    },
    instanceName: "test",
    baseURL: '/test',
    interceptors: {
      request: {
        // 設(shè)置請(qǐng)求頭信息
        onConfig: (config) => {
          config.headers.Accept = 'application/json'
          config.headers['Content-Type'] = 'application/json'
          config.headers['X-Requested-With'] = 'XMLHttpRequest'
          if (!config.data) config.data = {}
          return config
        }
      },
      response: {
        // 請(qǐng)求失敗
        onError: (error) => {
          const { response } = error
          const { data } = response

          // 處理請(qǐng)求錯(cuò)誤的返回結(jié)果
          const errorObj = {
            status: response?.status,
            statusText: response?.statusText,
            errorCode: data?.errorCode ?? data?.error ?? data?.code,
            errorMessage:
              data?.errorMessage ?? data?.message ?? data?.error ?? data
          }

          // 判斷登錄超時(shí)
          if (response && response.status === 401) {
            console.error('登錄超時(shí)', response)
            const loginUrl = response?.headers?.loginurl || ''

            if (loginUrl) {
              // 跳轉(zhuǎn)登錄頁
              window.location.href = loginUrl
              return Promise.reject(error)
            } else {
              // 頁面刷新
              window.location.reload()
              return Promise.reject(error)
            }
          }
          return Promise.reject(errorObj)
        }
      }
    }
  },
  {
    paramsSerializer: (params) => {
      return qs.stringify(params, { arrayFormat: 'repeat', encode: false })
    },
    instanceName: "exportExcel",
    baseURL: '/test',
    interceptors: {
      request: {
        // 設(shè)置請(qǐng)求頭信息
        onConfig: (config) => {
          config.headers.Accept = 'application/json'
          config.responseType = "blob"
          config.headers['Content-Type'] = 'application/json;charset=UTF-8'
          config.headers['X-Requested-With'] = 'XMLHttpRequest'
          if (!config.data) config.data = {}
          return config
        }
      },
      response: {
        onResponse: (response) => {
          const { data } = response;
          const str = response?.headers['content-disposition']
          const oldFileName = buildFileName(str)
          const filename = response?.headers['Kyy-Hosp-Dip-Filename']
          response.data = {
            data: data,
            filename: filename ? filename : oldFileName
          }
          return response
        },
        // 請(qǐng)求失敗
        onError: (error) => {
          const { response } = error
          const { data } = response

          // 處理請(qǐng)求錯(cuò)誤的返回結(jié)果
          const errorObj = {
            status: response?.status,
            statusText: response?.statusText,
            errorCode: data?.errorCode ?? data?.error ?? data?.code,
            errorMessage:
              data?.errorMessage ?? data?.message ?? data?.error ?? data
          }

          // 判斷登錄超時(shí)
          if (response && response.status === 401) {
            console.error('登錄超時(shí)', response)
            const loginUrl = response?.headers?.loginurl || ''

            if (loginUrl) {
              // 跳轉(zhuǎn)登錄頁
              window.location.href = loginUrl
              return Promise.reject(error)
            } else {
              // 頁面刷新
              window.location.reload()
              return Promise.reject(error)
            }
          }
          return Promise.reject(errorObj)
        }
      }
    }
  },
  {
    paramsSerializer: (params) => {
      return qs.stringify(params, { arrayFormat: 'repeat', encode: true })
    },
    instanceName: "downloadLog",
    baseURL: '/test',
    interceptors: {
      request: {
        // 設(shè)置請(qǐng)求頭信息
        onConfig: (config) => {
          config.headers.Accept = 'application/json'
          config.headers['Content-Type'] = 'application/octet-stream'
          if (!config.data) config.data = {}
          return config
        }
      },
      response: {
        onResponse: (response) => {
          const { data } = response;
          const filename = response?.headers['Kyy-Hosp-Dip-Filename']
          response.data = {
            data: data,
            filename: filename
          }
          return response
        },
        // 請(qǐng)求失敗
        onError: (error) => {
          console.log('error', error);
          const { response } = error
          const { data } = response

          // 處理請(qǐng)求錯(cuò)誤的返回結(jié)果
          const errorObj = {
            status: response?.status,
            statusText: response?.statusText,
            errorCode: data?.errorCode ?? data?.error ?? data?.code,
            errorMessage:
              data?.errorMessage ?? data?.message ?? data?.error ?? data
          }

          // 判斷登錄超時(shí)
          if (response && response.status === 401) {
            console.error('登錄超時(shí)', response)
            const loginUrl = response?.headers?.loginurl || ''

            if (loginUrl) {
              // 跳轉(zhuǎn)登錄頁
              window.location.href = loginUrl
              return Promise.reject(error)
            } else {
              // 頁面刷新
              window.location.reload()
              return Promise.reject(error)
            }
          }
          return Promise.reject(errorObj)
        }
      }
    }
  },
])

const buildFileName = (disposition) => {
  let result = null;
  const list = disposition.split(";")
 
  list.forEach(item => {
    if (item.indexOf("filename=") != -1) {
      const name = item.split("filename=");
      result = decodeURI(name[1])
    }
  });
  return result;
}

封裝接口

 export function exportResult(data) {
    return httpApi({
        instanceName: 'exportExcel',
        url: '/**/',
        method: 'post',
        data
    })
}

 export function downloadSyncLog(params) {
    return httpApi({
        instanceName: 'downloadLog',
        url: '/**/',
        method: 'get',
        params
    })
}

代碼中使用:文章來源地址http://www.zghlxwxcb.cn/news/detail-799815.html

// 導(dǎo)出數(shù)據(jù)excel
exportData() {
  let params = this.getSearchParams();
  params.count = this.pagesUp.total;//導(dǎo)出下載必填
  exportResult(params).then(res => {
    //這個(gè)里面的data 的二進(jìn)制文件 創(chuàng)建一個(gè)文件對(duì)象
    let blob = new Blob([res.data || ""], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
    let downloadElement = document.createElement('a')//創(chuàng)建一個(gè)a 虛擬標(biāo)簽
    let href = window.URL.createObjectURL(blob) // 創(chuàng)建下載的鏈接
    downloadElement.href = href;
    downloadElement.download = "test文件名"; // 下載后文件名
    document.body.appendChild(downloadElement)
    downloadElement.click() // 點(diǎn)擊下載
    document.body.removeChild(downloadElement) // 下載完成移除元素
    window.URL.revokeObjectURL(href) // 釋放掉blob對(duì)象
    this.$message.success('導(dǎo)出成功')
  }).catch(e => {
    this.$message.error('導(dǎo)出失敗')
  })
},
// 日志下載
download(row){
  downloadSyncLog({syncTaskId:row.syncTaskId}).then(res => {
    let blob = new Blob([res.data || ""], {
        type: 'application/text'
    });
    let downloadElement = document.createElement('a')//創(chuàng)建一個(gè)a 虛擬標(biāo)簽
    let href = window.URL.createObjectURL(blob) // 創(chuàng)建下載的鏈接
    downloadElement.href = href;
    downloadElement.download = row.syncTaskId+'.log'; // 下載后文件名
    document.body.appendChild(downloadElement)
    downloadElement.click() // 點(diǎn)擊下載
    document.body.removeChild(downloadElement) // 下載完成移除元素
    window.URL.revokeObjectURL(href) // 釋放掉blob對(duì)象
    this.$message.success('下載成功')
  }).catch(e => {
    this.$message.error('下載失敗')
  })
},

到了這里,關(guān)于vue如何通過$http的post方法請(qǐng)求下載二進(jìn)制的Excel文件的文章就介紹完了。如果您還想了解更多內(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)文章

  • 深入理解通用的HTTP POST請(qǐng)求發(fā)送方法

    在現(xiàn)代的軟件開發(fā)中,與服務(wù)端進(jìn)行HTTP通信是一項(xiàng)基礎(chǔ)而重要的任務(wù)。本篇博客將深入研究并詳細(xì)解釋一個(gè)通用的HTTP POST請(qǐng)求發(fā)送方法,該方法使用了 RestTemplate 庫(kù)來簡(jiǎn)化HTTP通信。我們將逐行分析代碼,理解每一步的操作,并通過一個(gè)簡(jiǎn)單的示例演示如何使用這個(gè)方法。 步

    2024年02月04日
    瀏覽(29)
  • vue 后端返回二進(jìn)制流-前端通過blob對(duì)象下載文件-圖片

    前言 在實(shí)際開發(fā)中我們經(jīng)常會(huì)遇見下載文件的場(chǎng)景,比如下載合同,下載文件 下載文件有2種方式,一種是后端返回二進(jìn)制流,前端通過blob對(duì)象接受根據(jù)不同類型下載 還有一種把地址直接在瀏覽器新窗口打開瀏覽器打開pdf可以預(yù)覽和下載,其他文件直接下載 但不管是那種方

    2024年02月05日
    瀏覽(25)
  • http請(qǐng)求中g(shù)et和post方法的區(qū)別

    http請(qǐng)求中g(shù)et和post方法的區(qū)別

    超文本傳輸協(xié)議(HTTP)的設(shè)計(jì)目的是保證客戶端與服務(wù)器之間的通信。 HTTP 的工作方式是客戶端與服務(wù)器之間的請(qǐng)求-應(yīng)答協(xié)議。 web 瀏覽器可能是客戶端,而計(jì)算機(jī)上的網(wǎng)絡(luò)應(yīng)用程序也可能作為服務(wù)器端。 舉例:客戶端(瀏覽器)向服務(wù)器提交 HTTP 請(qǐng)求;服務(wù)器向客戶端返

    2024年02月03日
    瀏覽(37)
  • HTTP請(qǐng)求方法之POST請(qǐng)求的三種常見數(shù)據(jù)提交格式

    HTTP請(qǐng)求方法之POST請(qǐng)求的三種常見數(shù)據(jù)提交格式

    目錄 ?? application/x-www-form-urlencoded ?? multipart/form-data ?? application/json ?? 本文所講的 POST 請(qǐng)求是 HTTP/1.1 協(xié)議中規(guī)定的眾多 HTTP 請(qǐng)求方法的其中最常用的一個(gè)。一般使用 POST 請(qǐng)求方法向服務(wù)器發(fā)送數(shù)據(jù)(主要是一些創(chuàng)建更新操作),本文討論的是 POST 請(qǐng)求方法常用的三種數(shù)據(jù)

    2024年02月09日
    瀏覽(19)
  • HTTP POST接口帶參數(shù)的HttpClient請(qǐng)求方法和調(diào)用

    HTTP POST接口帶參數(shù)的HttpClient請(qǐng)求方法和調(diào)用

    接口自動(dòng)化測(cè)試,今天遇到POST接口帶參數(shù),參數(shù)在url上,發(fā)現(xiàn)原來的工具類中沒有該方法,重新調(diào)試加上。 ?doPost方法如下: 參考: [Java 接口自動(dòng)化框架]httpclient4.5.3(CloseableHttpClient) https的工具類HttpsClientUtils

    2024年02月06日
    瀏覽(18)
  • C語言通過IXMLHTTPRequest以get或post方式發(fā)送http請(qǐng)求獲取服務(wù)器文本或xml數(shù)據(jù)

    C語言通過IXMLHTTPRequest以get或post方式發(fā)送http請(qǐng)求獲取服務(wù)器文本或xml數(shù)據(jù)

    做過網(wǎng)頁設(shè)計(jì)的人應(yīng)該都知道ajax。 Ajax即Asynchronous Javascript And XML(異步的JavaScript和XML)。使用Ajax的最大優(yōu)點(diǎn),就是能在不更新整個(gè)頁面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動(dòng)作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變的信息。 在IE瀏覽器中,Ajax技術(shù)就是

    2024年01月25日
    瀏覽(26)
  • 【接口】HTTP(3) |GET和POST兩種基本請(qǐng)求方法有什么區(qū)別

    在我面試時(shí),在我招人面試別人時(shí),10次能遇到7次這個(gè)問題,我聽過我也說回答過: Get: 一般對(duì)于從服務(wù)器取數(shù)據(jù)的請(qǐng)求可以設(shè)置為get方式 Get方式在傳遞參數(shù)的時(shí)候,一般都會(huì)把參數(shù)直接拼接在url上 Get請(qǐng)求方法可以傳遞的參數(shù)數(shù)據(jù)量是有限的(因?yàn)橐话銋?shù)是拼接在url上,

    2024年04月12日
    瀏覽(25)
  • Python使用POST方法發(fā)送HTTP請(qǐng)求的15個(gè)示例(基于requests)

    以下是使用 requests 庫(kù)調(diào)用HTTP接口進(jìn)行POST請(qǐng)求的15個(gè)示例: 發(fā)送簡(jiǎn)單的POST請(qǐng)求: 發(fā)送JSON格式的POST請(qǐng)求: 發(fā)送XML格式的POST請(qǐng)求: 發(fā)送文件的POST請(qǐng)求:

    2024年02月10日
    瀏覽(23)
  • 使用HuTool的Http工具發(fā)送post傳遞中文參數(shù),請(qǐng)求會(huì)亂碼的解決方法

    Hutool 是一款功能豐富、易用的Java工具類庫(kù),我們?cè)诠ぷ髦薪?jīng)常會(huì)使用它的各種類庫(kù)方法簡(jiǎn)化我們的開發(fā),其中我們甚至能通過它的Http工具類直接發(fā)送http的各種請(qǐng)求,下面來介紹一下發(fā)送post請(qǐng)求時(shí)參數(shù)中有中文出現(xiàn)亂碼的解決方法。 這樣就不會(huì)造成請(qǐng)求參數(shù)出現(xiàn)亂碼問題

    2024年02月01日
    瀏覽(32)
  • 【HTTP】URL結(jié)構(gòu)、HTTP請(qǐng)求和響應(yīng)的報(bào)文格式、HTTP請(qǐng)求的方法、常見的狀態(tài)碼、GET和POST有什么區(qū)別、Cookie、Session等重點(diǎn)知識(shí)匯總

    【HTTP】URL結(jié)構(gòu)、HTTP請(qǐng)求和響應(yīng)的報(bào)文格式、HTTP請(qǐng)求的方法、常見的狀態(tài)碼、GET和POST有什么區(qū)別、Cookie、Session等重點(diǎn)知識(shí)匯總

    目錄 URL格式 HTTP請(qǐng)求和響應(yīng)報(bào)文的字段? HTTP請(qǐng)求方法 常見的狀態(tài)碼 GET 和 POST 的區(qū)別 Cookie 和 Session ? :是用來分割URL的主體部分(通常是路徑)和查詢字符串(query string)查詢字符串是一組鍵值對(duì)的參數(shù) query string :是鍵值對(duì)的結(jié)構(gòu),分割鍵值對(duì),=分割鍵和值 Content-Type

    2024年02月07日
    瀏覽(51)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包