Supportfrågor för server och klient (Windows, iPhone, Android, Linux).
Forum rules
För att kunna hjälpa dig med supportfrågor behöver vi så mycket information som möjligt.
Innan du skapar en ny tråd, läs gärna:
viewtopic.php?f=10&t=20
-
redina
- 3 stars

- Posts: 98
- Joined: Sun 28 Nov 2010, 10:23
Post
by redina » Wed 29 Dec 2010, 09:34
Hej!
Jag försöker få till ett REST-anrop från en server som är på webben. Det fungerar med Android-klienten och det fungerar "lokalt" när jag använder den publika adressen.
Här är koden just nu prova lite olika.
Code: Select all
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = WebRequestMethods.Http.Get;
WebProxy myProxy = new WebProxy();
string proxyAddress = string.Format("{0}:{1}", calInfo.SwitchKingServer, calInfo.SwitchKingPort);
Uri newUri = new Uri(proxyAddress);
myProxy.Address = newUri;
NetworkCredential myCred = new NetworkCredential("user", "pwd");
myProxy.Credentials = myCred;
request.Credentials = myProxy.Credentials;
request.Proxy = myProxy;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string tmp = reader.ReadToEnd();
response.Close();
Några tips på hur jag kan göra?
----------------------------------------------------------------------------------------------
Windows 7 Professional 64-bit, SK Server 3.2.0.2 (DB 2.5.5), SK Client 3.1.0.1
-
Martin
- Administrator

- Posts: 2655
- Joined: Tue 09 Nov 2010, 20:25
Post
by Martin » Wed 29 Dec 2010, 09:48
Vad är det som _inte_ fungerar?
Är det en server på distans som ska göra ett REST-anrop hem till din server som inte når fram?
Martin | Switch King
-
redina
- 3 stars

- Posts: 98
- Joined: Sun 28 Nov 2010, 10:23
Post
by redina » Wed 29 Dec 2010, 10:02
Ja, precis. Får "unable to connect to remote server --> a socket operation was attempted to an unreachable host ip:8800"
----------------------------------------------------------------------------------------------
Windows 7 Professional 64-bit, SK Server 3.2.0.2 (DB 2.5.5), SK Client 3.1.0.1
-
Martin
- Administrator

- Posts: 2655
- Joined: Tue 09 Nov 2010, 20:25
Post
by Martin » Wed 29 Dec 2010, 10:20
Det ser rätt ut... Annat exempel som bör uppnå samma sak (går mot Switch Kings demomiljö) är:
Code: Select all
string uri = "http://www.switchking.se:8800/devices";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = WebRequestMethods.Http.Get;
request.Credentials = new NetworkCredential("user", "pass");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string tmp = reader.ReadToEnd();
response.Close();
Har du full kontroll över servern som anropet körs ifrån? Det kan inte vara så att man spärrar utgående trafik på port 8800?
Om du har full remote access till servern via exempelvis Remote Desktop, kan du skriva in
http://www.switchking.se:8800/devices i en webbläsare och komma fram?
Martin | Switch King
-
redina
- 3 stars

- Posts: 98
- Joined: Sun 28 Nov 2010, 10:23
Post
by redina » Wed 29 Dec 2010, 10:30
Ja det verkar vara de utgående portarna, tänkte inte på det. Det är Binero och de har bara dessa portar:
https://support.binero.se/index.php?_m= ... icleid=115
Man kan kanske använda cvs porten de använder 5999 istället.
----------------------------------------------------------------------------------------------
Windows 7 Professional 64-bit, SK Server 3.2.0.2 (DB 2.5.5), SK Client 3.1.0.1
-
redina
- 3 stars

- Posts: 98
- Joined: Sun 28 Nov 2010, 10:23
Post
by redina » Wed 29 Dec 2010, 10:41
Tackar! Nu fungerar det med port 5999 istället.
----------------------------------------------------------------------------------------------
Windows 7 Professional 64-bit, SK Server 3.2.0.2 (DB 2.5.5), SK Client 3.1.0.1
-
Martin
- Administrator

- Posts: 2655
- Joined: Tue 09 Nov 2010, 20:25
Post
by Martin » Wed 29 Dec 2010, 10:45
Bifogar koden till det plugin som slår ihop data från två servrar och som kan användas när man kör Android-klienten.
Du kan använda denna som bas om du vill deserialisera objekten som returneras från REST-tjänsten.
Tänker exempelvis på:
Code: Select all
var ds = FromByteArrayToRESTDataSource(collectedByServer);
var data = Get(CreateUrl("datasource/" + id));
DataContractSerializer serializer = new DataContractSerializer(typeof(List<RESTDataSource>));
List<RESTDataSource> result = (List<RESTDataSource>)serializer.ReadObject(new MemoryStream(data));
...som plockar alla datakällor från REST-tjänsten och returnerar en lista med objekt som man kan jobba lite enklare med...
You do not have the required permissions to view the files attached to this post.
Martin | Switch King
Who is online
Users browsing this forum: Bing [Bot] and 7 guests