با سلام. خیلی از دوستان سوالاتی مبنی برچگونگی ارتباط برنامه B4A با وب سرویس WCF یا همان Asp.net را داشته اند که من در ادامه این کار را آموزش خواهم داد.
در اولین قدم در برنامه B4a کد زیر را در دکمه ای که قصد اتصال داریم وارد میکنیم :

Dim strXML As String
	strXML = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 	xmlns:tem='http://tempuri.org/'>"
	strXML = strXML & "<soapenv:Header/>"
	strXML = strXML & "<soapenv:Body>"
	strXML = strXML & "<tem:test>"
	strXML = strXML & "<tem:username>" & username  & "</tem:username>"
	strXML = strXML & "<tem:password>" & password  & "</tem:password>"
	strXML = strXML & "<tem:code>" &  code  & "</tem:code>"
	strXML = strXML & "</tem:test>"
	strXML = strXML & "</soapenv:Body>"
	strXML = strXML & "</soapenv:Envelope>"
	strXML = strXML.Replace("'", Chr(34))

در خط اول یک متغیر تعریف کرده ایم که در آن رشته ارسالی به وب سرویس را تولید میکنیم
در خط 2 دستور ارسال به صورت soap را مشخص میکنیم معمولا این ادرس همیشه ثابت است.
در خط 3 میتوانیم هدر تعریف کنیم که من تعریف نکردم.
در خط 4 یک body از دستورات را شروع میکنم.
در خط 5 باید نام تابع در وب سرویس که قصد ورود به آن را داریم را وارد میکنیم.
در خط 6 ، 7 و8 پارامترهای مختلف تابع رامشخص میکنیم.
در بقیه خطوط نکته مهمی نیست.

پس از این کدها باید یک سری دستورات را برای ارسال استفاده کنیم که به این دستورات httpJob گفته میشه که به صورت زیر باید تعریفش کرد :

Dim htJob As HttpJob

دستورات را مطابق زیر بنویسید :

htJob.Initialize("htJob", Me)
htJob.PostString("http://www.omigo.ir/service1.svc", strXML)
htJob.GetRequest.SetHeader("SOAPAction", """http://tempuri.org/IService1/test""")
htJob.GetRequest.SetContentType("text/xml; charset=utf-8")
htJob.GetRequest.Timeout = 60000

در خط 1 httpjob را initialize میکنیم.
سپس در خط 2 باید مشخص کنیم که رشته متنی دستورات soap را به کجا ارسال کنیم که همان آدرس وب سرویس ما است.
در خط 3 نوع محتویات را مشخص میکنیم.
در خط 4 حداکثر مدت منتظر ماندن برای ارسال و دریافت را مشخص میکنیم.

دقت کنیم در یک تابع جداگانه به نام jobDone میتوانیم مقادیر بازگشتی از وب سرویس را در بیاوریم.

Sub JobDone (job As HttpJob)
    If job.JobName="htJob" And htJob.Success = True Then
			Dim b() As Byte
			b=job.GetString2("UTF8").GetBytes("UTF8")
			Dim in As InputStream
			in.InitializeFromBytesArray(b,0,b.Length)
			parser.Initialize
			parser.Parse(in,"Parser")
    End If
    job.Release
End Sub

همچنین وجود تابع Parser_EndElement برای مشاهده نتایج از وب سرویس مهم است :

Sub Parser_EndElement (Uri As String, Name As String, Text As StringBuilder)
	If parser.Parents.IndexOf("testResponse") > -1 Then
		If Name = "testResult" Then
		End Try
	End If
End Sub