123456789101112131415161718192021222324252627282930313233343536 |
- // Contributed by Matt Senne from conjoinedcats.com
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace BestHTTP.Forms
- {
- public sealed class RawJsonForm : HTTPFormBase
- {
- private byte[] CachedData;
- /// <summary>
- /// Prepares the request to sending a form. It should set only the headers.
- /// </summary>
- public override void PrepareRequest(HTTPRequest request)
- {
- request.SetHeader("Content-Type", "application/json");
- }
- /// <summary>
- /// Prepares and returns with the form's raw data.
- /// </summary>
- public override byte[] GetData()
- {
- if (CachedData != null && !IsChanged)
- return CachedData;
- Dictionary<string, string> dict = Fields.ToDictionary(x => x.Name, x => x.Text);
- string json = JSON.Json.Encode(dict);
- IsChanged = false;
- return CachedData = Encoding.UTF8.GetBytes(json);
- }
- }
- }
|