2015-06-12 12 views
5

Tôi nên tham khảo HttpClient bằng cách sử dụng tệp project.json như thế nào?
Tôi muốn cả hai khung làm việc: dnx451dnxcore50.Tôi nên tham khảo HttpClient như thế nào đối với dnx451 và dnxcore50?

Đây là nỗ lực hiện tại của tôi tại tệp project.json. (Tôi đã xóa các phần không liên quan.)

{ 
    "dependencies": { 
    "Microsoft.Net.Http": "2.2.29", 
    "Microsoft.Net.Http.Headers": "1.0.0-beta4", 
    "System.Net.Http": "4.0.0-beta-22816" 
    }, 
    "frameworks": { 
    "dnx451": { 
     "frameworkAssemblies": { 
     "System.Net.Http": "4.0.0.0" 
     } 
    }, 
    "dnxcore50": { } 
    } 
} 

Khám phá các phụ thuộc mà tôi đã liệt kê là một quy trình thử và lỗi.

Với project.json tập tin này, bối cảnh dnxcore50 đúng cách giải quyết tất cả các lớp trong ví dụ này khối mã, nhưng nó thất bại trong việc giải quyết HttpRequestMessage, HttpMethod, và MediaTypeWithQualityHeaderValue với dnx451 bối cảnh:

var request = new HttpRequestMessage(HttpMethod.Get, "..."); 
request.Headers.Accept.Clear(); 
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/...")); 
var response = await client.SendAsync(request); 
var model = await response.EnsureSuccessStatusCode().Content.ReadAsAsync<SomeModel>(); 
+1

Xem [this] (http://stackoverflow.com/questions/27946798/httpclient-in-asp-net-5-0-not-found/27949353#27949353) –

+0

@YuvalItzchakov Điều đó có mọi thứ hoạt động trong dnx451 ngữ cảnh ngoại trừ phương thức mở rộng 'ReadAsAsync' trên' HttpContent'. Nó là một thành viên của lớp 'HttpContentExtensions' trong không gian tên' System.Net.Http'. Bất kỳ ý tưởng lắp ráp khung hoặc phụ thuộc tôi cần cho điều đó? Đây là một trợ giúp lớn, bằng cách này! –

+0

@YuvalItzchakov Với sự giúp đỡ của bạn, tôi đã tìm ra. Xem câu trả lời của tôi. –

Trả lời

9

Tính đến thời điểm đăng bài (ngày 11 tháng 6 năm 2015) đây là kết hợp làm việc cho tôi cho cả hai dnx451dnxcore50.

{ 
    "dependencies": { 
    "Microsoft.AspNet.WebApi.Client": "5.2.3" 
    }, 
    "frameworks": { 
    "dnx451": { 
     "frameworkAssemblies": { 
     "System.Net.Http": "4.0.0.0" 
     } 
    }, 
    "dnxcore50": { 
     "dependencies": { 
     "System.Net.Http": "4.0.0-beta-22816" 
     } 
    } 
    } 
} 
+0

Bạn có cần tham chiếu cho từng khung công tác không? Những phụ thuộc hàng đầu sẽ không áp dụng cho cả hai khung hình? Tôi chỉ có "System.Net.Http": "4.0.0-beta-23008" trong các phụ thuộc và hiển thị dưới dạng tham chiếu dnx451 và dnxcore50 trong Danh sách dự án. – jonas

+0

@jonas Tôi vừa xác nhận rằng nếu bạn làm những gì bạn đang nói 'HttpClient' ** sẽ không ** có thể truy cập trong cả dnx451 và dnxcore50. Hãy thử viết mã sử dụng nó trong một dự án được cấu hình như bạn đang nói. –

+0

@Timothy Shields - Tôi đã làm điều đó ngoại trừ Microsoft.Net.HttpClient và nó hoạt động tốt. –

0

Tôi đánh dấu câu trả lời của Timothy là hữu ích vì nó dẫn tôi đi đúng hướng, nhưng câu hỏi/câu trả lời này cũng đã được vài tháng tuổi. Kể từ đó, ASP.NET5 đã RCed. Đây là những gì làm việc cho tôi ngay bây giờ:

{ 
    "version": "1.0.0-*", 

    ... 

    "dependencies": { 
    "System.Runtime": "4.0.21-beta-23516", 
    "Newtonsoft.Json": "6.0.6", 
    "Microsoft.CSharp": "4.0.1-beta-23516", 
    "System.Net.Http": "4.0.1-beta-23516" 
    }, 
    "frameworks": { 
    "dnx451": { 
     "dependencies": { 
     } 
    }, 
    "dnxcore50": { 
     "dependencies": { 
     } 
    } 
    } 
} 

mà có vẻ là tương tự với cách này tiết hơn về cách xác định sự phụ thuộc:

{ 
    "version": "1.0.0-*", 

    ... 

    "dependencies": { 
    "System.Runtime": "4.0.21-beta-23516", 
    "Newtonsoft.Json": "6.0.6", 
    "Microsoft.CSharp": "4.0.1-beta-23516" 
    }, 
    "frameworks": { 
    "dnx451": { 
     "dependencies": { 
     "System.Net.Http": "4.0.1-beta-23516" 
     } 
    }, 
    "dnxcore50": { 
     "dependencies": { 
     "System.Net.Http": "4.0.1-beta-23516" 
     } 
    } 
    } 
} 

Cả hai phiên bản làm việc như tôi đã có thể gỡ lỗi HttpClient tôi gọi thành công .

Bạn có thể bỏ qua các phụ thuộc khác ngoại trừ System.Net.Http.

Các vấn đề liên quan