Nx 2.8.0
dotnet add package Nx --version 2.8.0
NuGet\Install-Package Nx -Version 2.8.0
<PackageReference Include="Nx" Version="2.8.0" />
paket add Nx --version 2.8.0
#r "nuget: Nx, 2.8.0"
// Install Nx as a Cake Addin #addin nuget:?package=Nx&version=2.8.0 // Install Nx as a Cake Tool #tool nuget:?package=Nx&version=2.8.0
A .Net Helper Library For Rapid Development.Give You A Easy Way Send Http Request
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net40 is compatible. net403 was computed. net45 was computed. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
This package has no dependencies.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.8.0 | 48 | 3/10/2015 |
2.4.1.6 | 80 | 12/19/2014 |
2.4.1.5 | 49 | 12/19/2014 |
2.4.1.3 | 63 | 12/16/2014 |
2.4.1.2 | 49 | 12/15/2014 |
2.4.1.1 | 53 | 12/12/2014 |
2.4.1 | 32 | 12/12/2014 |
2.3.1.1 | 226 | 11/17/2014 |
2.3.1 | 397 | 11/16/2014 |
2.2.1.8 | 61 | 10/28/2014 |
2.2.1.5 | 89 | 10/21/2014 |
2.2.1.4 | 88 | 10/21/2014 |
2.2.1.3 | 58 | 10/14/2014 |
2.2.1.2 | 57 | 10/14/2014 |
2.2.1.1 | 56 | 10/14/2014 |
2.2.1 | 34 | 10/14/2014 |
2.1.0.2 | 77 | 9/29/2014 |
0x01:Simulation of the HTTP request ======================================
var ctxIn = RequestBuilder.Create("default")
.SetUrl("http://sample.com/api/sendmsg")
.SetUserAgent("Nx Framework 2.4.1.0")
.SetReferer("http://sample.com/api/login")
.SetProxy(new WebProxy("127.0.0.1:8888")) //or .SetProxy(new WebProxy("127.0.0.1:8888",enable:true))
.WithCookie("name=value") //or .WithCookies(List<Cookie> cookies) and so on.
.AllowAutoRedirect(true)
.SetHttpMethod("POST")
.WithHeader("X-Token","x9v4d-d043b")
.WithTextInput("user","tiny")
.WithFileInput("file1","D:\a.txt")
.WithBytesInput("file2",new byte[]{0x00,0x03,0x00,0x7f})
.SetTimeout(3000)
.UsingAjax()
.DisableProxy() //or .EnableProxy()
.Build();
var ctxIn = RequestManager.GetResponse(ctxIn);
if(ctxIn.Exception==null)
{
//if html, we have a nice intergration from Ivony's code(https://www.nuget.org/packages/Jumony.Core/) builtin.
var document = respCtx.ResponseDocument;//get IHtmlDocument object.
//Filter elements like JQUERY using the extensions from Ivony
var theElements = document.AllElements().Find(".pager");
//LINQ then
//var matchedElemList = theElements.Where(...).ToList();
//Get text directly
var text = ctxIn.Text;
//The stream, and other useful properties of IResponseContext
var ms = ctxIn.Stream;
}
0x02:Read Text Based File EASY And FAST.====================================
var file = new Nx.IO.TextFileInfo("d:\\d.txt");
//random row
while(true)
{
Console.WriteLine(file.RandomRow.Text);
}
//row items
foreach(var item in file.RowItems)
{
//useful properties:
//item.RowIndex
//item.Text
//item.IsEmptyLine
//item.DataLength
}
0x03:ThreadSafeRandom =============================================
see class Nx.ThreadSafeRandom and RandomService
0x04:Extensions ====================================================
The usage is [using Nx.Extensions;]
Provide some extension method for:
Array
Compression
Cookie
MD5
Stream
Time
Uri
...
For Details, see the reflection tree under Nx.Extension namespace of Nx in the VisualStudio Assembly References folder of vs project after install nx from nuget or add reference manually.
0x05:DynamicJson ==================================================
See https://dynamicjson.codeplex.com/ and thanks the project.
0x06:Blocked Dialog for waiting background task(s) ==================
//Show a dialog with text tips until background action executed.
void WindowManager.ShowWaitingDialog(Action action,string title,string tipText);
//Show a dialog with progress tips and text tips until the quantity of submitted tasks equals the one processed.
//ReadProcessed and ReadSubmitted are delegate
void ShowWaitingDialog(ReadProcessed readProcessed, ReadSubmitted readSubmitted, string title, string tips)
0x07:Multithread tasks =================================================================
//define the worker
class Worker : WorkerBase<int, int, int>
{
public Worker(int i) : base(i) { }
protected override int DoWork(int inputParams)
{
this.WorkerProgressSignal(inputParams++);
Console.WriteLine(inputParams);
return inputParams;
}
}
//new a ThreadingTaskManager
Nx.Threading.ThreadingTaskManager ttm = new Nx.Threading.ThreadingTaskManager();
//optionally, we can config the threadpool associated to ttm
ttm.ThreadPool.Setminthread(1000);
//we create a list of Worker
var workList = new List<IWorker>();
for (int i = 0; i < 10000; i++)
{
var worker = new Worker(i);
workList.Add(worker);
}
//submit the task list and execute asynchronous
ttm.Start<int, int>(workList, true);
//block current thread and show the progress
Nx.Controls.WindowManager.ShowWaitingDialog(() => {
return ttm.TotalProcessed;
}, () => {
return ttm.TotalSubmitted;
});
//will go on if ttm.TotalSubmitted==ttm.TotalProcessed;
PS:
I'm considering put this project on github someday.
For this time, any suggestions or bugs can be submited by sending email to me(tiny@sandsea.info).
[Updated at 2014.12.19 utc+8 (Beijing time)]
UPDATE LOGS
2.4.1.6
Add multiThread task manage support.See 0x07.
2.4.1.4
Cancel IDispose interface of IResponseContext.
The ResponseContext will auto dispose resources after request completed now.
Removed WebResponse propertiy of IResponseContext.
Will no modify the default value of HttpWebRequest.Timeout if not specific a value by SetTimeout method of RequestBuilder.
2.4.1.3
Intergrate the DynamicJson class under Nx.Data namespace, see the project page:https://dynamicjson.codeplex.com/ for more details or usage
2.4.1.2
* Add some http header setting method for Nx.Net.RequestBuilder:
* Add [Accept] with [SetAccept(string)]
* Add [Host] with [SetHost(string)]
* Use AutoSetHost() to set the host from url.If url is http://www.baidu.com/index.php, then the host will be set to www.baidu.com
* Set KeepAlive to false as default for HttpWebReqeust
* Add Dispose() method for IResponseContext to manual dispose http connection resources.
* Add [TransferEncoding] with [SetTransferEncoding(string)]
* At this version, method Nx.Net.RequestBuilder.SetProxy(WebProxy) will also enable the proxy(previous versions have not do that.)
Fixed bugs on decompress gzip stream from http response.
2.4.1.1
Fix bug on determine if a request is multipart-form when build requst context
2.4.1.0
Many Bugs Fixed.
With Ivony Html Extension Builtin.Thanks Ivony's code(https://www.nuget.org/packages/Jumony.Core/)
Add Chaos.NaCl's cryto class
2.3.0.0
add support http post file using RequestBuilder.WithFileInput.
the RequestBuilder.WithFormData changes to RequestBuilder.WithTextInput
2.2.1.5
fixed bug in Nx.TimeUtil.GetTimestamp()
2.2.1.4
small bug fix.
2.2.1.3
Add "HttpMethod PUT" support for the core request utils.
2.2.1.2
fix the bug that the post data does not submitted after use Nx.Net.RequestBuilder.SetHttpMethod("POST")