| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 3ce5df0 commit 57a6996
5 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -535,6 +535,21 @@ export var test_request_headersSentAndReceivedProperly = function (done) { | |||
| 535 | 535 | }); | |
| 536 | 536 | }; | |
| 537 | 537 | ||
| 538 | + export var test_request_headersWithSameKeyAddedProperly = function (done) { | ||
| 539 | + var headers = {}; | ||
| 540 | + | ||
| 541 | + (<any>http).addHeader(headers, "key", "value1"); | ||
| 542 | + (<any>http).addHeader(headers, "key", "value2"); | ||
| 543 | + | ||
| 544 | + try { | ||
| 545 | + TKUnit.assert(Array.isArray(headers["key"]), "Headers with same key not added properly!"); | ||
| 546 | + done(null); | ||
| 547 | + } | ||
| 548 | + catch (err) { | ||
| 549 | + done(err); | ||
| 550 | + } | ||
| 551 | + }; | ||
| 552 | + | ||
| 538 | 553 | export var test_request_contentSentAndReceivedProperly = function (done) { | |
| 539 | 554 | var result; | |
| 540 | 555 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -58,15 +58,16 @@ function onRequestComplete(requestId: number, result: com.tns.Async.Http.Request | |||
| 58 | 58 | } | |
| 59 | 59 | ||
| 60 | 60 | // read the headers | |
| 61 | - var headers = {}; | ||
| 61 | + var headers: http.Headers = {}; | ||
| 62 | 62 | if (result.headers) { | |
| 63 | 63 | var jHeaders = result.headers; | |
| 64 | 64 | var length = jHeaders.size(); | |
| 65 | 65 | var i; | |
| 66 | 66 | var pair: com.tns.Async.Http.KeyValuePair; | |
| 67 | 67 | for (i = 0; i < length; i++) { | |
| 68 | 68 | pair = jHeaders.get(i); | |
| 69 | - headers[pair.key] = pair.value; | ||
| 69 | + | ||
| 70 | + (<any>http).addHeader(headers, pair.key, pair.value); | ||
| 70 | 71 | } | |
| 71 | 72 | } | |
| 72 | 73 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -60,14 +60,16 @@ export function request(options: http.HttpRequestOptions): Promise<http.HttpResp | |||
| 60 | 60 | if (error) { | |
| 61 | 61 | reject(new Error(error.localizedDescription)); | |
| 62 | 62 | } else { | |
| 63 | - var headers = {}; | ||
| 63 | + var headers: http.Headers = {}; | ||
| 64 | 64 | if (response && response.allHeaderFields) { | |
| 65 | 65 | var headerFields = response.allHeaderFields; | |
| 66 | 66 | var keys = headerFields.allKeys; | |
| 67 | 67 | ||
| 68 | 68 | for (var i = 0, l = keys.count; i < l; i++) { | |
| 69 | - var key = keys.objectAtIndex(i); | ||
| 70 | - headers[key] = headerFields.valueForKey(key); | ||
| 69 | + let key = keys.objectAtIndex(i); | ||
| 70 | + let value = headerFields.valueForKey(key); | ||
| 71 | + | ||
| 72 | + (<any>http).addHeader(headers, key, value); | ||
| 71 | 73 | } | |
| 72 | 74 | } | |
| 73 | 75 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -103,13 +103,15 @@ declare module "http" { | |||
| 103 | 103 | /** | |
| 104 | 104 | * Gets the response headers. | |
| 105 | 105 | */ | |
| 106 | - headers: any; | ||
| 106 | + headers: Headers; | ||
| 107 | 107 | ||
| 108 | 108 | /** | |
| 109 | 109 | * Gets the response content. | |
| 110 | 110 | */ | |
| 111 | 111 | content?: HttpContent; | |
| 112 | 112 | } | |
| 113 | + | ||
| 114 | + export type Headers = { [key: string]: string | string[] }; | ||
| 113 | 115 | ||
| 114 | 116 | /** | |
| 115 | 117 | * Encapsulates the content of an HttpResponse. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,6 @@ | |||
| 1 | 1 | import image = require("image-source"); | |
| 2 | 2 | import httpRequest = require("http/http-request"); | |
| 3 | + import dts = require("http"); | ||
| 3 | 4 | ||
| 4 | 5 | global.moduleMerge(httpRequest, exports); | |
| 5 | 6 | ||
@@ -52,4 +53,16 @@ export function getFile(arg: any, destinationFilePath?: string): Promise<any> { | |||
| 52 | 53 | } | |
| 53 | 54 | }, e => reject(e)); | |
| 54 | 55 | }); | |
| 56 | + } | ||
| 57 | + | ||
| 58 | + export function addHeader(headers: dts.Headers, key: string, value: string): void{ | ||
| 59 | + if(!headers[key]) { | ||
| 60 | + headers[key] = value; | ||
| 61 | + } else if (Array.isArray(headers[key])){ | ||
| 62 | + (<string[]>headers[key]).push(value); | ||
| 63 | + } else { | ||
| 64 | + let values: string[] = [<string>headers[key]]; | ||
| 65 | + values.push(value); | ||
| 66 | + headers[key] = values; | ||
| 67 | + } | ||
| 55 | 68 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments