コード例 #1
0
ファイル: AspNetForm.cs プロジェクト: coggy/plasma
        public HttpPlasmaResponse GenerateFormPostRequest(HttpPlasmaClient client)
        {
            // path and query string
            var headers = new WebHeaderCollection();
            string path;
            string query;

            var iQuery = _action.IndexOf('?');

            if (iQuery >= 0) {
                path = _action.Substring(0, iQuery);
                query = _action.Substring(iQuery + 1);
            }
            else {
                path = _action;
                query = null;
            }

            if (_fileControls.Count > 0)
            {
                var multipartFormBody = new MultipartFormBody(this, _fileControls);

                headers.Add(HttpRequestHeader.ContentLength, multipartFormBody.ContentLength);
                headers.Add(HttpRequestHeader.ContentType, multipartFormBody.ContentType);
                var body = multipartFormBody.FormBodyData();
                return client.Post(path, query, body, headers);
            }

            var formData = GenerateFormDataAsString();

            if (string.Compare(_method, "GET", StringComparison.OrdinalIgnoreCase) == 0) {
                return client.Get(path, formData);
            }

            var formBody = Encoding.UTF8.GetBytes(formData);
            headers.Add(HttpRequestHeader.ContentLength, formBody.Length.ToString());
            headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
            return client.Post(path, query, formBody, headers);
        }