Android Question Upload image file to C# Asp.Net WebService

Richard Goh

Active Member
Licensed User
Longtime User
Hi, I have below webservice method written in C# Asp.Net. I was trying to do image file upload to the server. I searched trough the forum all are using php. Have anyone did it before? Is there a way to add the Web Reference likes in Visual studio and use it in B4A?

[Method]
Public string UploadFile(string filename, byte[] file)
 

Richard Goh

Active Member
Licensed User
Longtime User
Hi Erel, thanks for your quick attempt. But I not so sure the protocol you mentioning. I pasted below is my webservice details when browsed. How can I go about it?

SOAP 1.1
The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.
POST /MyWebservice.asmx HTTP/1.1
Host: 192.168.1.249
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/UploadFile"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<UploadFile xmlns="http://tempuri.org/">
<fileName>string</fileName>
<f>base64Binary</f>
</UploadFile>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<UploadFileResponse xmlns="http://tempuri.org/">
<UploadFileResult>string</UploadFileResult>
</UploadFileResponse>
</soap:Body>
</soap:Envelope>
SOAP 1.2
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.
POST /MyWebservice.asmx HTTP/1.1
Host: 192.168.1.249
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<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">
<soap12:Body>
<UploadFile xmlns="http://tempuri.org/">
<fileName>string</fileName>
<f>base64Binary</f>
</UploadFile>
</soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<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">
<soap12:Body>
<UploadFileResponse xmlns="http://tempuri.org/">
<UploadFileResult>string</UploadFileResult>
</UploadFileResponse>
</soap12:Body>
</soap12:Envelope>
HTTP GET
The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.
GET /MyWebservice.asmx/UploadFile?fileName=string&f=string&f=string HTTP/1.1
Host: 192.168.1.249
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="stringhttp://tempuri.org/">string</string>
HTTP POST
The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.
POST /MyWebservice.asmx/UploadFile HTTP/1.1
Host: 192.168.1.249
Content-Type: application/x-www-form-urlencoded
Content-Length: length
fileName=string&f=string&f=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="stringhttp://tempuri.org/">string</string>
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Upvote 0

Xicu

Active Member
Licensed User
Longtime User
Hi Erel and Richard
I have the same webservice in vb asp.net, with the same arguments. Its work perfectly from desktop vb.aplication. The webmethod starts with:

<WebMethod> _
Public Function UploadFile(file As Byte(), fileName As String) As String

The server expects four possible protocols:
HTTP POST, HTTP GET, SOAP 1.1, and SOAP 1.2

Is it possible to upload de file using job.postfile? (I think that its use http post).
Have you got an example to do this with asp.net webservice?
 
Upvote 0

Richard Goh

Active Member
Licensed User
Longtime User
[quote="Nadal, post: 272952, member: 47103]Hi Erel and Richard
I have the same webservice in vb asp.net, with the same arguments. Its work perfectly from desktop vb.aplication. The webmethod starts with:

<WebMethod> _
Public Function UploadFile(file As Byte(), fileName As String) As String

The server expects four possible protocols:
HTTP POST, HTTP GET, SOAP 1.1, and SOAP 1.2

Is it possible to upload de file using job.postfile? (I think that its use http post).
Have you got an example to do this with asp.net webservice?[/quote]
I did that sometime ago. Will need to dig it out. Now I am out of office. Will let you know when I back to office.

Not mistaken I am using soap1.2 and convert the bytes into file at webservice after receiving the bytes string. http post may have the querystring constraints on the size length it can hold.
 
Upvote 0

Xicu

Active Member
Licensed User
Longtime User
Richard, thanks for your response,
then, you say me that the best way to upload a file to asp web service is using soap1.2.
Is it correct?.
 
Last edited:
Upvote 0
Top