diff --git a/.gitignore b/.gitignore
index 5c1632f..3fb9940 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
.vscode
.idea
.DS_Store
+*.history
*.esm.json
*.js
*.js.map
diff --git a/demo/app/assets/httpbin.org.cer b/demo/app/assets/httpbin.org.cer
index b2b0c26..8ba123f 100644
Binary files a/demo/app/assets/httpbin.org.cer and b/demo/app/assets/httpbin.org.cer differ
diff --git a/demo/app/main-page.ts b/demo/app/main-page.ts
index 3944f11..0f26010 100644
--- a/demo/app/main-page.ts
+++ b/demo/app/main-page.ts
@@ -42,6 +42,23 @@ export function postHttpbin() {
postRequest('https://httpbin.org/post', {"foo": "bar", "baz": undefined, "plaz": null});
}
+export function postHttpbinWithUTF8() {
+ Https.request(
+ {
+ url: 'https://httpbin.org/post',
+ method: 'POST',
+ body: {"foo": "bar", "baz": undefined, "plaz": null},
+ headers: {
+ 'Content-Type': "application/json; charset=utf-8"
+ }
+ })
+ .then(response => console.log('Https.request response', response))
+ .catch(error => {
+ console.error('Https.request error', error);
+ dialogs.alert(error);
+ });
+ }
+
export function getHttpbin() {
getRequest('https://httpbin.org/get');
}
diff --git a/demo/app/main-page.xml b/demo/app/main-page.xml
index 7ccb009..25c7df0 100644
--- a/demo/app/main-page.xml
+++ b/demo/app/main-page.xml
@@ -9,6 +9,7 @@
+
diff --git a/src/https.android.ts b/src/https.android.ts
index 492a751..ace54cb 100644
--- a/src/https.android.ts
+++ b/src/https.android.ts
@@ -128,12 +128,18 @@ function getClient(reload: boolean = false, timeout: number = 10): okhttp3.OkHtt
verify: (hostname: string, session: javax.net.ssl.SSLSession): boolean => {
let pp = session.getPeerPrincipal().getName();
let hv = javax.net.ssl.HttpsURLConnection.getDefaultHostnameVerifier();
- return (
- hv.verify(peer.host, session) &&
- peer.host === hostname &&
- peer.host === session.getPeerHost() &&
- pp.indexOf(peer.commonName) !== -1
- );
+ if (peer.commonName && peer.commonName[0] === "*") {
+ return (hv.verify(peer.host, session) &&
+ hostname.indexOf(peer.host) > -1 &&
+ hostname.indexOf(session.getPeerHost()) > -1 &&
+ pp.indexOf(peer.commonName) !== -1);
+ }
+ else {
+ return (hv.verify(peer.host, session) &&
+ peer.host === hostname &&
+ peer.host === session.getPeerHost() &&
+ pp.indexOf(peer.host) !== -1);
+ }
},
}));
} catch (error) {
diff --git a/src/https.ios.ts b/src/https.ios.ts
index 0c4bed5..1783c13 100644
--- a/src/https.ios.ts
+++ b/src/https.ios.ts
@@ -44,7 +44,7 @@ function AFSuccess(resolve, task: NSURLSessionDataTask, data: NSDictionarydata) instanceof NSArray) {
// content = {}
// data.enumerateKeysAndObjectsUsingBlock(function(k, v) {
// console.log('v.description', v.description)
@@ -53,7 +53,7 @@ function AFSuccess(resolve, task: NSURLSessionDataTask, data: NSDictionarydata) instanceof NSData) {
content = NSString.alloc().initWithDataEncoding(data, NSASCIIStringEncoding).toString();
// } else if (data.class().name == 'NSArray') {
// content = []
@@ -136,12 +136,10 @@ function AFFailure(resolve, reject, task: NSURLSessionDataTask, error: NSError)
export function request(opts: Https.HttpsRequestOptions): Promise {
return new Promise((resolve, reject) => {
try {
-
const manager = AFHTTPSessionManager.alloc().initWithBaseURL(NSURL.URLWithString(opts.url));
-
- if (opts.headers && opts.headers['Content-Type'] === 'application/json') {
- manager.requestSerializer = AFJSONRequestSerializer.serializer();
- manager.responseSerializer = AFJSONResponseSerializer.serializerWithReadingOptions(NSJSONReadingOptions.AllowFragments);
+ if (opts.headers && (opts.headers['Content-Type']).substring(0, 16) === 'application/json') {
+ manager.requestSerializer = AFJSONRequestSerializer.serializer();
+ manager.responseSerializer = AFJSONResponseSerializer.serializerWithReadingOptions(NSJSONReadingOptions.AllowFragments);
} else {
manager.requestSerializer = AFHTTPRequestSerializer.serializer();
// manager.responseSerializer = AFXMLParserResponseSerializer.serializer()
diff --git a/src/package.json b/src/package.json
index 13b9002..a906fef 100644
--- a/src/package.json
+++ b/src/package.json
@@ -43,7 +43,13 @@
"name": "Robert Laverty",
"email": "roblav96@gmail.com",
"url": "https://github.com/roblav96"
+ },
+ {
+ "name": "Kefah BADER ALDIN",
+ "email": "kefah.bader@gmail.com",
+ "url": "https://github.com/kefahB"
}
+
],
"repository": "github:gethuman/nativescript-https",
"homepage": "https://github.com/gethuman/nativescript-https",