2012-01-27 34 views
6

enter image description hereKhông thể Để kết nối máy chủ từ xa (Web Service)

Tôi đã cố gắng để tích hợp dịch vụ web này vào dự án asp.net của tôi nhưng nó popup loại như vậy của lỗi! Nếu bạn có bất kỳ ý tưởng về điều này vui lòng cho tôi giải pháp. Có rất ít tài liệu về dịch vụ web oodle và API oodle.

Hãy thử URL này để có ý tưởng thêm về vấn đề của tôi http://api.oodle.com/api/v2/listings?key=TEST&region=chicago&category=vehicle/car

Trả lời

4

Đó chỉ đơn giản là không phải là một dịch vụ SOAP Web. Đó là một dịch vụ REST XML. Các dịch vụ REST không cung cấp dữ liệu meta tự mô tả dưới dạng WSDL.

Bạn cần một cách khác để giao tiếp với dịch vụ. Nếu không có trình bao bọc C#, bạn có thể phải tự tạo trình tạo url, và có .NET Framework deserialize các tài liệu xml cho bạn vào các lớp được viết độc đáo (bạn cũng tự viết).

Hãy thử đọc thêm tại địa chỉ: Oddle Developer Center

EDIT: Ngoài ra, nếu bạn đang tải về các tài liệu XML từ bên trong một ứng dụng web, có một vài điều bạn cần phải xem xét.

Khi bạn đang phát triển, hãy đảm bảo bạn đang chạy Visual Studio dưới dạng Quản trị viên.

Khi bạn triển khai tới nhà cung cấp dịch vụ lưu trữ, hãy đảm bảo bạn không chạy Vừa tin cậy, vì điều đó có thể ngăn bạn truy cập các nguồn web bên ngoài.

Tuy nhiên, tôi vẫn không thể hiểu tại sao hộp thoại Thêm tham chiếu web không thể kết nối với máy chủ web oodle. Kiểm tra cài đặt mạng, cài đặt tường lửa của bạn, v.v. Nếu bạn có thể truy cập URL trong trình duyệt web của mình, bạn sẽ có thể tải xuống tài liệu thông qua mã.

+2

Nhưng làm thế nào để có được dữ liệu từ URL? Tôi có nghĩa là hoàn toàn mới yêu cầu và phản ứng được tạo ra! Vậy làm thế nào tôi có thể lập bản đồ? – Chintan

+1

Bạn có thể để WCF xử lý điều đó cho bạn. Dưới đây là một vài gợi ý: http://blogs.msdn.com/b/pedram/archive/2008/04/21/how-to-consume-rest-services-with-wcf.aspx http: // msdn. microsoft.com/en-us/magazine/dd315413.aspx –

+0

... hoặc bạn làm tất cả theo cách thủ công. Sau đó, bạn cần một số phương thức để tạo ra các url thích hợp, sau đó sử dụng một đối tượng 'WebClient' để tạo một yêu cầu và sau đó mở đáp ứng' Stream'. Sau đó, có một vài cách khác nhau để lấy lại dữ liệu theo cách có cấu trúc. 'XmlDocument',' XDocument' hoặc 'XmlSerializer' là các điểm bắt đầu ... –

4
try 
    { 
     string url = @"http://api.oodle.com/api/v2/listings?key=TEST&region=chicago"; 

     WebClient webClient = new WebClient(); 
     webClient.Encoding = Encoding.UTF8; 
     string result = webClient.DownloadString(url); 

     } 
    catch (Exception ex) 
    { 
     Response.Write(ex.ToString()); 

    } 

Lệnh này tạo ngoại lệ

string result = webClient.DownloadString(url); 

và ngoại lệ chi tiết có

System.Net.WebException: Unable to connect to the remote server ---> 
System.Net.Sockets.SocketException: A connection attempt failed because the connected 
party did not properly respond after a period of time, or established connection failed 
because connected host has failed to respond 192.168.0.101:808 at 
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress 
socketAddress) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, 
Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, 
IAsyncResult asyncResult, Int32 timeout, Exception& exception) --- End of inner exception 
stack trace --- at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& 
request) at System.Net.WebClient.DownloadString(Uri address) at 
System.Net.WebClient.DownloadString(String address) at _Default.lnkGoTo_Click(Object 
sender, EventArgs e) in d:\MyDemoz\oodleDemo\Default.aspx.cs:line 58 
+0

Đọc thông báo lỗi. Nó cho bạn biết những gì là sai. ** Nỗ lực kết nối không thành công vì bên được kết nối không phản hồi đúng sau một khoảng thời gian hoặc kết nối được thiết lập không thành công vì máy chủ được kết nối không phản hồi ** Máy chủ hết thời gian hoặc từ chối kết nối của bạn vì các lý do khác. Có thể chỉ có một số giá trị 'User-Agent' được cho phép ... Bạn có thể truy cập URL bằng trình duyệt web của mình không?Đối với tôi, mất khoảng 6 giây để tải xuống tài liệu XML bằng cách sử dụng URL đó. Phải mất nhiều thời gian hơn cho bạn? Bạn thậm chí có được một kết quả? –

+0

Ồ, đợi đã ... Đây có phải là ứng dụng web không? Bạn đang chạy Medium Trust? Và một lần nữa, bạn có chạy dụ Visual Studio của bạn với tư cách là Quản trị viên không? Bởi vì khi tôi chạy mã của bạn từ bên trong một ứng dụng Console (sử dụng Console.WriteLine thay vì Response.Write), nó hoạt động hoàn hảo. Hãy thử chạy VS với tư cách Quản trị viên! Tôi đã cập nhật câu trả lời của mình. –

+2

Hãy để tôi chạy với tư cách Quản trị viên! – Chintan

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