2012-11-05 26 views
1

在Node.js的我可以這樣做:的NodeJS http.get的飛鏢

var http = require('http') 

var url = 'mylinkedsite.com' 
http.get({ host: url }, function(){...}) 

在DART我想是一樣的:

import 'dart:io'; 
import 'dart:uri'; 

var url = 'mylinkedsite.com';   
var client = new HttpClient(); 
var uri = new Uri.fromString(url); 
var connection = client.getUrl(uri); 
connection.onResponse = (res){...}; 

但我無法得到同樣的結果,而不顯式添加了url.scheme和url.path。這兩者都是最終的。完成相同結果的最簡單方法是什麼?

+0

所以你要求一個HTTP客戶端的API與Node附帶的http庫更接近?它看起來像你的代碼片段(目前)是最簡單的方法。 –

回答

1

dart:io HttpClient的支持字符串作爲主機名:

var conn = httpClient.get("http://mylinkedsite.com", 80, "/"); 
    conn.onResponse = (HttpClientResponse response) { 
    if(response.statusCode != 200) { 
     // unexpected return code 
    } else { 
     // success, parse response 
    } 
    }; 
    conn.onError = (e) => completer.completeException(e); 

只是另一種方法是http助手方法來隱藏URI呼叫的背後一樣的界面,更加節點。

+1

節點似乎檢查並添加方案:'http://'和路徑:'/',如果它們在http.get中缺失。如果Dart對那些試圖從Node進行切換的人來說會更好。 – basheps