Avatar billede pezzo Nybegynder
06. september 2005 - 16:57 Der er 13 kommentarer og
2 løsninger

Wannafind SMS og Socket.TCP problem

Hej! Har en SMS løsning lejet hos Wannafind og deres teknikkere er gået hjem for idag. Man kan sende via email, men også via socket.

Følgende dokumentation: http://sms.wannafind.dk/api/docs/

Bruger så følgende kode:
        set socket = CreateObject("Socket.TCP")
        socket.Host = "sms.wannafind.dk:8080"
        socket.Open()
        socket.SendLine "POST /api/ HTTP/1.1"
        socket.SendLine "Host: sms.wannafind.dk"
        socket.SendLine "Keep-Alive: 300"
        socket.SendLine "Connection: keep-alive"
        socket.SendLine "Content-Type: application/x-www-form-urlencoded"
        socket.SendLine "Content-Length: 85"
        socket.SendLine "username=xxxx&password=xxx&limit=1&to=50504501&message=this+is+a+test"
        Result = Socket.Buffer
        socket.Close()
        Response.Write(Result)

Den skriver intet resultat, why?
Avatar billede busschou Praktikant
06. september 2005 - 17:09 #1
har du prøvet at udskrive den før du lukker din socket?
altså
---
set socket = CreateObject("Socket.TCP")
socket.Host = "sms.wannafind.dk:8080"
socket.Open()
socket.SendLine "POST /api/ HTTP/1.1"
socket.SendLine "Host: sms.wannafind.dk"
socket.SendLine "Keep-Alive: 300"
socket.SendLine "Connection: keep-alive"
socket.SendLine "Content-Type: application/x-www-form-urlencoded"
socket.SendLine "Content-Length: 85"
socket.SendLine "username=xxxx&password=xxx&limit=1&to=50504501&message=this+is+a+test"
Result = Socket.Buffer
response.write(Result)
socket.Close()
Avatar billede pezzo Nybegynder
06. september 2005 - 17:14 #2
Giver ingen forskel når jeg jo ligger det ud i variablen! Har prøvet, og gav ingen forskel!
Avatar billede busschou Praktikant
06. september 2005 - 17:18 #3
nej ok der er jo ingen grund til at kalde det result så, min tanke var at den måske gemte det som en slags pointer reference som derfor forsvandt når du lukkede din socket
Men det gør den så ikke
Avatar billede pezzo Nybegynder
06. september 2005 - 17:22 #4
Nix  gør den ikke. Aner virkelige ikke hvad problemet er.!
Avatar billede busschou Praktikant
06. september 2005 - 17:27 #5
du er sikker på at hosten er på port 8080 og ikke 80 ?
ellers ved jeg desværre ikke hvad det lige kan være
Avatar billede busschou Praktikant
06. september 2005 - 17:38 #6
hvis jeg her
http://www.dandomain.dk/support/asp-scripts/w3_sockets.pdf
ser på Buffer så står der at den giver det der er fået undervejs i en Wait rutine
Det kunne måske tænkes at du inden du udskriver din Buffer selvfølgelig skal vente på at få noget fra serveren :o)
så tilføj evt et
socket.WaitForDisconnect
Avatar billede busschou Praktikant
06. september 2005 - 17:39 #7
altså
---
set socket = CreateObject("Socket.TCP")
socket.Host = "sms.wannafind.dk:8080"
socket.Open()
socket.SendLine "POST /api/ HTTP/1.1"
socket.SendLine "Host: sms.wannafind.dk"
socket.SendLine "Keep-Alive: 300"
socket.SendLine "Connection: keep-alive"
socket.SendLine "Content-Type: application/x-www-form-urlencoded"
socket.SendLine "Content-Length: 85"
socket.SendLine "username=xxxx&password=xxx&limit=1&to=50504501&message=this+is+a+test"
socket.WaitForDisconnect()
Result = Socket.Buffer
socket.Close()
response.write(Result)
Avatar billede busschou Praktikant
06. september 2005 - 17:40 #8
og under WaitForDisconnect rutinen står oveni købet
--
Waits until all data is received and the connection is closed. The data can then be read from
the "buffer" property
--
så mon ikke den kan kringle den
Avatar billede pezzo Nybegynder
06. september 2005 - 19:26 #9
KODE:
<%
        XML = "username=xxx&password=xxx&limit=1&to=50504501&message=this+is+a+test"
               
set socket = CreateObject("Socket.TCP")
socket.Host = "sms.wannafind.dk:80"
socket.Open()
socket.SendLine "POST /api/ HTTP/1.1"
socket.SendLine "Host: sms.wannafind.dk"
socket.SendLine "Keep-Alive: 300"
socket.SendLine "Connection: keep-alive"
socket.SendLine "Content-Type: application/x-www-form-urlencoded"
socket.SendLine "Content-Length: " & len(XML)
socket.SendLine xml
socket.WaitForDisconnect()
Result = Socket.Buffer
socket.Close()
response.write(Result)
%>

GIVER FØLGENDE FEJL:
Socket.TCP error '8000ffff'

Timeout expired while waiting for socket event.

/sms_do/socket.asp, line 14
Avatar billede busschou Praktikant
06. september 2005 - 22:29 #10
hmm du kan evt forsøge at sætte timeouten, er du blevet sikker på at det er port 80?
----
<%
        XML = "username=xxx&password=xxx&limit=1&to=50504501&message=this+is+a+test"
             
set socket = CreateObject("Socket.TCP")
socket.Host = "sms.wannafind.dk:80"
'timeout angivet i millisekunder
socket.TimeOut = 60000
socket.Open()
socket.SendLine "POST /api/ HTTP/1.1"
socket.SendLine "Host: sms.wannafind.dk"
socket.SendLine "Keep-Alive: 300"
socket.SendLine "Connection: keep-alive"
socket.SendLine "Content-Type: application/x-www-form-urlencoded"
socket.SendLine "Content-Length: " & len(XML)
socket.SendLine xml
socket.WaitForDisconnect()
Result = Socket.Buffer
socket.Close()
response.write(Result)
%>
Avatar billede pezzo Nybegynder
14. september 2005 - 14:24 #11
virkede slet ikke det her, var bare mig misforstod det hele fra Wannafind

Smid svar hvis vil have point!
Avatar billede busschou Praktikant
14. september 2005 - 15:29 #12
oki doki, håber du fik det til at virke på anden måde så
Avatar billede knaldeglad Nybegynder
19. januar 2007 - 21:27 #13
øv.. du ku da godt lige sige hvordan du så gjorde....  sidder med det nu...  øv.. 
har du tid så smid det op ...  tark.
Avatar billede knaldeglad Nybegynder
20. januar 2007 - 11:34 #14
public void sendSMS(string SMSMessage, string SMSNumber)
        {
            string data = "username=ditbrugernavn&password=ditpassMD5crypteret&limit=1&recipient=" + SMSNumber + "&message=" + SMSMessage + "";
           
            byte[] bytes = Encoding.ASCII.GetBytes(data);

            string gatewayUrl = "http://sms.wannafind.dk/api/";
            HttpWebResponse resp = null;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(gatewayUrl);

            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = bytes.Length;
           
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes, 0, bytes.Length);
            requestStream.Close();

            resp = (HttpWebResponse)request.GetResponse();
            Console.WriteLine("Got a response from the Xml Gateway, response:");
            StreamReader responseReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
            Console.WriteLine(responseReader.ReadToEnd());
        }

disse skal bruges ud over dem du har;

using System.Web;
using System.Net;
using System.IO;
Avatar billede knaldeglad Nybegynder
20. januar 2007 - 11:35 #15
hov glemte comment...  ovenstående virker perf.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester