android aQuery post将图片发送到服务器C#

时间:2018-03-17 16:02:41

标签: c# android http

我试图通过带有AQuery库的http帖子将几个图像从Android客户端发送到C#服务器。

urlport="http://192.168.100.139:1111";
Map<String, Object> params = new HashMap<>();
params.put("testimage", new File(getRealPathFromURI(imageUris.get(0))) );
aQuery
    .ajax(urlport,params,JSONObject.class,new AjaxCallback<JSONObject>(){
        @Override
        public void callback(String url, JSONObject json, AjaxStatus status){
            alert("post complete");//not working
        }
});

C#HTTP侦听器

lstnr = new Server();
lstnr.url = "http://" + ipbox.Text;
lstnr.port = portfield.Text;
lstnr.Received += Server_Received_multipart;
lstnr.StartListen();
在Server.class中的

我设置了在接收循环中运行的委托,接受Stream

class Server{
    ......
    public event EventHandler<Stream> Received = delegate { };
    ......
    public void Start(){
        string prefix = String.Format("{0}:{1}/", url, port);
        listener.Prefixes.Add(prefix);
        if (!listener.IsListening) {
            listener.Start();
            isListening = true;
            try
            {
                while (isListening)
                {
                    HttpListenerContext context = listener.GetContext();
                    HttpListenerRequest request = context.Request;
                    Stream postdata = request.InputStream;
                    Received(this, postdata);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Start() error: " + e.Message);
            }
        }
    }
}

private void Server_Received_multipart(object sender, Stream msg)
{
    Dispatcher.Invoke((Action)(() =>
    {
        //here want to handle stream and show images in window and save on disk
        MessageBox.Show("message received"); //this not working too

    }));
}

在我做一个fork之前,服务器接受带有在base64中编码的图像的字符串/工作正常,但是如果发送几个大小> 3-4 Mb的图像,应用程序崩溃会发生OurOfMemory错误。对不起,如果语法不好,我俄语

0 个答案:

没有答案