Sending binary data over http

前端 未结 3 1205
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-31 08:51

I am looking for suggestions on the best way to send/receive data from a remote GPRS device, over port 80.

Creating a plain TCP socket on a random port works fine, but m

相关标签:
3条回答
  • 2021-01-31 09:06

    Will simply sending base64 encoded data work?

    There is no need to use base 64 encoding - this will simply increase the number of bytes you must transfer. Mobile operators normally limit mangling of responses to content types that they understand - i.e. images, stylesheets, etc.

    How are the HTTP sessions handled?

    HTTP sessions are normally handled either via a URL query parameter or via a cookie value. However, from what you have said it doesn't sound like sessions are necessary.

    Arbitrary sockets can be kept alive for a long time, but HTTP verbs are usually short lived. Does this mean I will need to create a new connection for each packet of data?

    HTTP requests can last for an arbitrarily long period of time, just as for raw TCP sockets. A GET request can last for hours if necessary. You need not create a new connection for each request — take a look at the Connection: Keep-Alive HTTP header.

    Or is there a way to send server responses in chunks, over a single connection?

    If you don't know the length of the response you can either omit a Content-Length header or, preferably, use the Transfer-Encoding: chunked HTTP header.

    In what ways can an ISP proxy mess with the data, or the headers? For example, a proxy can sometimes keep a connection alive, even if the server closes it.

    ISPs don't tend to reveal the changes they make to HTTP responses. If you are concerned about this a simple solution would be to encrypt the data and specify a Content-Encoding HTTP header. This would require you to control both the HTTP client and server.

    0 讨论(0)
  • 2021-01-31 09:23

    ASP.NET C# implementation of Uploading binary data like images as POST request to target URL:.

    http://technowide.net/2012/09/01/upload-binary-data-http-post/

    0 讨论(0)
  • 2021-01-31 09:29

    If possible, you could just send the data as HTTP requests and responses.

    HTTP is perfectly capable of handling binary data: images are sent over HTTP all the time, and they're binary. People upload and download files of arbitrary data types all the time with no problem.

    Just give it a mime type of "application/octet-stream" -- which is basically a generic mime type for binary data with no further specification of just what sort -- and any proxies along the way should leave it alone.

    0 讨论(0)
提交回复
热议问题