zoukankan      html  css  js  c++  java
  • get.go

    package api

    import (
        "net/http"
        "fmt"
        "io/ioutil"
    )

    const bufferSize = 512 * 1024
    //获取空间文件
    func Get(host string, port int, vid uint64, fid uint64, filename string) ([]byte, error) {
        url := fmt.Sprintf("http://%s:%d/%d/%d/%s", host, port, vid, fid, filename)
        resp, err := http.Get(url)
        if err != nil {
            return nil, err
        }
        defer resp.Body.Close()

        if resp.StatusCode == http.StatusOK {
            return ioutil.ReadAll(resp.Body)
        }else {
            return nil, fmt.Errorf("%d != 200", resp.StatusCode)
        }
    }
    //获取空间文件   指定字节区间
    func GetRange(host string, port int, vid uint64, fid uint64, filename string, start int, length int) ([]byte, error) {
        url := fmt.Sprintf("http://%s:%d/%d/%d/%s", host, port, vid, fid, filename)
        req, _ := http.NewRequest(http.MethodGet, url, nil)
        req.Header.Set("Range", fmt.Sprintf("bytes=%d-%d", start, start + length - 1))
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
            return nil, err
        }
        defer resp.Body.Close()

        if resp.StatusCode == http.StatusPartialContent {
            return ioutil.ReadAll(resp.Body)
        }else {
            return nil, fmt.Errorf("%d != 200", resp.StatusCode)
        }
    }

  • 相关阅读:
    746. 使用最小花费爬楼梯
    1283. 使结果不超过阈值的最小除数
    307. 区域和检索
    303. 区域和检索
    474. 一和零
    600. 不含连续1的非负整数
    命名规范【转】
    .NET中RabbitMq的使用
    C#中json字符串的序列化和反序列化
    c#发送post请求(带参数)
  • 原文地址:https://www.cnblogs.com/zhangboyu/p/7461602.html
Copyright © 2011-2022 走看看