mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-19 14:20:22 +08:00
readme update + fixes
This commit is contained in:
@ -2,6 +2,67 @@
|
|||||||
```js
|
```js
|
||||||
var http = require("net");
|
var http = require("net");
|
||||||
|
|
||||||
|
// Universal request method. You can use HttpRequestOptions to set varios properties, HttpHeader to get/set desired headers, HttpResponse to get status code, headers and content and
|
||||||
|
// HttpContent to get/set body for request/response:
|
||||||
|
|
||||||
|
interface HttpRequestOptions {
|
||||||
|
url: string;
|
||||||
|
method: string;
|
||||||
|
headers?: HttpHeader[];
|
||||||
|
content?: HttpContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface HttpHeader {
|
||||||
|
name: string;
|
||||||
|
value: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface HttpResponse {
|
||||||
|
statusCode: number;
|
||||||
|
headers: HttpHeader[];
|
||||||
|
content?: HttpContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface HttpContent {
|
||||||
|
toString: () => string;
|
||||||
|
toJSON: () => any;
|
||||||
|
toImage: () => image_module.Image;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get request
|
||||||
|
http.request({
|
||||||
|
url: "http://ip.jsontest.com/",
|
||||||
|
method: "GET",
|
||||||
|
headers: [{ name: "Content-Type", value: "application/json" }]
|
||||||
|
}).then(function (r) {
|
||||||
|
var status = r.statusCode;
|
||||||
|
|
||||||
|
for (var i = 0, l = r.headers.length; i < l; i++) {
|
||||||
|
var header = r.headers[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = r.content.toJSON();
|
||||||
|
|
||||||
|
}).fail(function (e) { });
|
||||||
|
|
||||||
|
// Post request
|
||||||
|
http.request({
|
||||||
|
url: "http://posttestserver.com/post.php?dump&html&dir=test",
|
||||||
|
method: "POST",
|
||||||
|
headers: [{ name: "Content-Type", value: "application/x-www-form-urlencoded" }],
|
||||||
|
content: "MyVariableOne=ValueOne&MyVariableTwo=ValueTwo"
|
||||||
|
}).then(function (r) {
|
||||||
|
log("Status code:" + r.statusCode);
|
||||||
|
|
||||||
|
for (var i = 0, l = r.headers.length; i < l; i++) {
|
||||||
|
var header = r.headers[i];
|
||||||
|
log(header.name + ":" + header.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
log("Content:" + r.content.toString())
|
||||||
|
|
||||||
|
}).fail(function (e) { log(e) });
|
||||||
|
|
||||||
http.getString("http://www.reddit.com/").then(function(result) {
|
http.getString("http://www.reddit.com/").then(function(result) {
|
||||||
// Result is string!
|
// Result is string!
|
||||||
}).fail(function(e) { console.log("Error:" + e.message); });
|
}).fail(function(e) { console.log("Error:" + e.message); });
|
||||||
@ -14,16 +75,4 @@
|
|||||||
// Result is tk.ui.Image!
|
// Result is tk.ui.Image!
|
||||||
}).fail(function(e) { console.log("Error:" + e.message); });
|
}).fail(function(e) { console.log("Error:" + e.message); });
|
||||||
|
|
||||||
http.request({ url: "http://www.reddit.com/r/aww.json?limit=10", method: "GET" }).then(function(r) {
|
|
||||||
console.log("Status code:" + r.statusCode);
|
|
||||||
|
|
||||||
for (var i = 0, l = r.headers.length; i < l; i++) {
|
|
||||||
var header = r.headers[i];
|
|
||||||
console.log(header.name + ":" + header.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("Content:" + r.content.toString()); // You can use also toJSON() and toImage() to convert the content.
|
|
||||||
|
|
||||||
}).fail(function(e) { console.log("Error:" + e.message); });
|
|
||||||
|
|
||||||
```
|
```
|
2
net/http_request.d.ts
vendored
2
net/http_request.d.ts
vendored
@ -10,7 +10,7 @@ export interface HttpRequestOptions {
|
|||||||
url: string;
|
url: string;
|
||||||
method: string;
|
method: string;
|
||||||
headers?: HttpHeader[];
|
headers?: HttpHeader[];
|
||||||
content?: HttpContent;
|
content?: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface HttpHeader {
|
export interface HttpHeader {
|
||||||
|
@ -27,8 +27,9 @@ export function request(options: http.HttpRequestOptions): promises.Promise<http
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var content = options.content ? options.content.toString() : "";
|
if (typeof options.content == "string") {
|
||||||
urlRequest.setHTTPBody(Foundation.NSString.initWithString(content).dataUsingEncoding(4));
|
urlRequest.setHTTPBody(Foundation.NSString.initWithString(options.content).dataUsingEncoding(4));
|
||||||
|
}
|
||||||
|
|
||||||
var dataTask = session.dataTaskWithRequestCompletionHandler(urlRequest,
|
var dataTask = session.dataTaskWithRequestCompletionHandler(urlRequest,
|
||||||
function (data, response, error) {
|
function (data, response, error) {
|
||||||
@ -52,7 +53,7 @@ export function request(options: http.HttpRequestOptions): promises.Promise<http
|
|||||||
toJSON: () => { return JSON.parse(NSDataToString(data)); },
|
toJSON: () => { return JSON.parse(NSDataToString(data)); },
|
||||||
toImage: () => { return image.Image.imageFromData(data); }
|
toImage: () => { return image.Image.imageFromData(data); }
|
||||||
},
|
},
|
||||||
statusCode: response.statusCode,
|
statusCode: response.statusCode(),
|
||||||
headers: headers
|
headers: headers
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user