Hej. ..varför i hela fridens namn skriver du såpa (SOAP) för anropet själv? HeHe, det ska bli riktig kod senare, gjorde bara detta snabbt. saken är den, att ifall du inte uppfinner hjulet på nytt så skulle det funka.. Men om vi bortser från själva soap delen, så fungerade det innan jag la till parametern kalle i webservicen. Något där måste vara fel. Tack för hjälpen så långt Simon. Snabbt, och kanske fel, men.. Har du testat att kröa webservicen direkt i webbläsaren? Rent spontant så känns det lite fel att sätta Kalle till ett värdet i webservicen då det är en parameter som bara är för input Direkt i webläsaren går det bra. Du ska skapa en "WebReferenece" i ditt projekt till asmx-filen. Som sagt, en "web reference" bör du lägga till. Därefter ser metodanrop mot din web service ut precis som vilket annat metodanrop som helst.Anrop av Webservice
Jag har tillbringat denna regniga dag med att skapa en liten webservice som jag behöver.
Den fungerade bra ända till jag ville mata den med en variabel, då får jag 500 error.
Finns det något sätt att få reda på vad som går fel?
Och kan någon direkt se vad jag gjort fel?
Här är webservicens kod:
<%@ WebService Language="VB" Class="WebService" %>
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
Public Class WebService
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function HelloWorld(ByVal Kalle As String) As String
Kalle = "[" & Kalle & "]"
Return Kalle
End Function
End Class
Och här är mitt anrop, själva koden för anropet.
strEnvelope.Append("<?xml version='1.0' encoding='utf-8'?>")
strEnvelope.Append("<soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'>")
strEnvelope.Append("<soap12:Body>")
strEnvelope.Append("<HellocWorld xmlns='http://tepuri.org/'>")
strEnvelope.Append("<Kalle>Apa</Kalle>")
strEnvelope.Append("</HelloWorld>")
strEnvelope.Append("</soap12:Body>")
strEnvelope.Append("</soap12:Envelope>")
Dim strURL = "http://xxx.xxx.xxx.xxx/webservice.asmx/HelloWorld"
Dim request As HttpWebRequest = CType(HttpWebRequest.Create(strURL), HttpWebRequest)
Dim postData As String = strEnvelope.ToString
Dim encoding As New ASCIIEncoding()
Dim byte1 As Byte() = encoding.GetBytes(postData)
' Set the content type of the data being posted.
request.ContentType = "application/soap+xml; charset=utf-8"
' Set the content length of the string being posted.
request.Method = WebRequestMethods.Http.Post
request.ContentLength = postData.Length
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(byte1, 0, byte1.Length)
newStream.Close()
Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
Dim reader As New StreamReader(response.GetResponseStream())
Dim tmp As String = reader.ReadToEnd()
response.Close()
Tack på förhand
/ClasseSv: Anrop av Webservice
Sv:Anrop av Webservice
Håller på och lär mig alltihop så jag ville inte trassla med flera saker samtidigt.Sv: Anrop av Webservice
(tex så har du en hel del tyrkfel i "klient" koden...)Sv:Anrop av Webservice
Eller i koden som skickar till webservicen.
Att det står HellocWorld i soap strängen är bara något som smög sig med och är borttaget.
Har du något tips så jag kommer vidare.....Sv:Anrop av Webservice
Jag har bara programmerat i .NET sedan en månad tillbaka och XML/SOAP lite sporadiskt.
Satte igång på allvar idag då jag behöver den webservice jag gjort.
Där för hänger jag inte riktigt med på allt men får man bara lite så kan man läsa sig till resten, det är då man lär sig.
Hittade en del om att skapa proxy m.m. på Microsoft så jag ska ta det som nattläsning så fortsätter
jag med det senare i veckan.
/ClasseSv: Anrop av Webservice
Sv:Anrop av Webservice
Jag hoppas detta med proxy ska lösa det hela.
Ska testa att ändra namnen med lite senare.
/ClaseSv: Anrop av Webservice
http://www.codeproject.com/soap/BeginnerWebService.asp
/JohanSv:Anrop av Webservice
Att skriva "SOAP-kuvertet" är precis sådant strul som .NET ser till att göra åt oss! :)
/Ted
www.tednyberg.com