Jc.Net 1.1.11

dotnet add package Jc.Net --version 1.1.11                
NuGet\Install-Package Jc.Net -Version 1.1.11                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Jc.Net" Version="1.1.11" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Jc.Net --version 1.1.11                
#r "nuget: Jc.Net, 1.1.11"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Jc.Net as a Cake Addin
#addin nuget:?package=Jc.Net&version=1.1.11

// Install Jc.Net as a Cake Tool
#tool nuget:?package=Jc.Net&version=1.1.11                

Jc.Net

基础网络请求模块

实例化
Jc.Net.JcNet net = new Jc.Net.JcNet();

下载文件

HttpDownloadCallback 有进度的下载
void DownLoad()
{
    try
    {
        net.HttpDownloadCallback(
            "https://xxxx.com/1914000052_3682012180020_2C41.etc",
            "1.etc",
            resultFile
        );
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
        throw;
    }
}

//下载文件回掉
void resultFile(bool status, int progrss, string message)
{
    Console.WriteLine($"status:{status}>progrss:{progrss}>message:{message}");
}

HttpDownload 同步无进度下载
net.HttpDownload("url", "localFilePath");

上传文件

HttpUploadCallback 有进度的上传
void UploadTest()
{
    Jc.Net.JcNet net = new JcNet();
    net.HttpUploadCallback(
    "http://localhost:5162/test/uploadfile", 
    "/Users/jackerkun/Downloads/2021-04-29-vueday-en.pdf",
    uploadCallback);
}

/// <summary>
/// 上传文件回调函数
/// </summary>
/// <param name="state">状态</param>
/// <param name="fileUploaded">已经上传多少</param>
/// <param name="fileSize">文件总大小</param>
/// <param name="percent">已经上传的比例</param>
/// <param name="timeSpan">耗时(s)</param>
/// <param name="upSpeed">上传速度</param>
/// <param name="serverResult">服务器返回信息</param>
/// <returns></returns>
void uploadCallback(JcNet.UploadState state,
    int fileUploaded,
    long fileSize,
    string percent,
    string timeSpan,
    string upSpeed,
    string serverResult)
{
    Console.WriteLine($"{state},{fileUploaded},{fileSize},{percent},{timeSpan},{upSpeed},{serverResult}");
}
HttpUpload 同步 无进度上传(返回服务信息)
var result=net.HttpUpload(serverUrl,localFile);

API接收端 代码

/// <summary>
/// 上传文件
/// </summary>
/// <returns></returns>
[HttpPost("/test/uploadfile")]
[DisableRequestSizeLimit]
public async Task<ActionResult> uploadfile()
{
    try
    {
        var files = Request.Form.Files;
        foreach (var formFile in files)
        {
            if (formFile.Length > 0)
            {
                var filePath =formFile.FileName;//文件路径
                using (var stream = new FileStream(filePath, FileMode.Create))
                {
                    await formFile.CopyToAsync(stream);
                }
                //到这里 文件就保存完毕了
            }
        }
    }
    catch (Exception ex)
    {
        return Ok(ex.Message);
    }
    return Ok("success");
}

网络请求

HttpPost 同步Post请求
/// <summary>
/// httpPost请求
/// </summary>
/// <param name="url">服务器地址</param>
/// <param name="postData">参数内容</param>
/// <param name="headers">headers</param>
/// <param name="timeOut"></param>
/// <returns></returns>
public string HttpPost(string url, string postData, List<string> headers, int timeOut = 3000)
HttpPostCallback 异步Post请求 带回调
/// <summary>
/// POST异步请求 带 回调
/// </summary>
/// <param name="url">服务器地址</param>
/// <param name="postData">参数内容</param>
/// <param name="headers">headers</param>
/// <param name="callBack">回调函数</param>
/// <param name="timeOut"></param>
public void HttpPostCallback(string url, string postData, List<string> headers, HttpResult callBack, int timeOut = 3000)

HttpGet 同步Get请求
/// <summary>
/// httpGet同步请求
/// </summary>
/// <param name="url"></param>
/// <param name="headers"></param>
/// <param name="timeOut"></param>
/// <returns></returns>
public string HttpGet(string url, List<string> headers, int timeOut = 3000)
httpGetCallback 异步Get请求 带回调
/// <summary>
/// 异步 带回调 httpGet
/// </summary>
/// <param name="url">服务器地址(含参数)</param>
/// <param name="headers">headers</param>
/// <param name="callBack">回调函数</param>
/// <param name="timeOut"></param>
/// <returns></returns>
public void HttpGetCallback(string url, List<string> headers, HttpResult callBack, int timeOut = 3000)
HttpPostForm Post Form提交数据
//切记 文件要放到后面提交--------
var dat = new NameValueCollection()
{
    {"aecgParm", JsonConvert.SerializeObject(aecgData,Formatting.Indented)},
    {"aecgFile","/Users/jackerkun/Downloads/test.aecg"},
};
var res= net.HttpPostForm("http://192.168.1.140:5003/api/airpt",dat);
HttpGetForm Get Form提交数据
var dat = new NameValueCollection()
{
    {"aiParm", JsonConvert.SerializeObject(parm)}
};
var res= net.HttpGetForm("http://192.168.1.140:5003/api/airpt",dat);

内容处理函数

返回值转String
    /// <summary>
    /// 获取Response的返回值
    /// </summary>
    /// <param name="response"></param>
    /// <returns></returns>
    public string? ResponseToString(HttpWebResponse? response)
返回值落盘
    /// <summary>
    /// 获取Response落盘文件
    /// </summary>
    /// <param name="response"></param>
    /// <param name="filePath"></param>
    /// <returns></returns>
    public bool ResponseToFile(HttpWebResponse? response,string filePath)
返回值转Byte[]
    /// <summary>
    /// 获取Response转bytes
    /// </summary>
    /// <param name="response"></param>
    /// <returns></returns>
    public byte[] ResponseToBytes(HttpWebResponse? response)
Url参数获取
    /// <summary>
    /// 获取地址中的参数
    /// </summary>
    /// <param name="url"></param>
    /// <returns></returns>
    public NameValueCollection GetQueryParams(string url)
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • .NETStandard 2.1

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Jc.Net:

Package Downloads
Jc.WX

微信接口通讯模块积累

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.11 445 9/1/2022
1.1.10 703 5/13/2022
1.1.9 439 4/27/2022
1.1.8 427 4/26/2022
1.1.7 427 4/16/2022
1.1.6 419 4/16/2022
1.1.5 431 4/14/2022
1.1.4 423 3/29/2022
1.1.3 865 3/21/2022
1.1.2 412 3/20/2022
1.0.2 434 3/17/2022
1.0.1 430 3/4/2022