HTTP Post File从Android App到ASP.NET页面,Request.files始终为空

时间:2014-02-27 04:27:59

标签: android asp.net http android-async-http

我对Android来自iOS背景相当新手。我正在尝试将一个文件(用户选择的配置文件图像)发送到我的asp.net页面以存储在我的服务器上。

我99%确定我收到了正确的文件并使用我正在运行的当前代码将其发送出去。问题出在我的ASP.NET文件中,文件对象的请求永远不会获取任何数据。

这是ASP.NET页面

<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Security" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Web.UI" %>
<%@ Import Namespace="System.Web.UI.WebControls" %>
<%@ Import Namespace="System.Web.UI.HtmlControls" %>
<%@ Import Namespace="System.IO" %>
<script runat="server"> 

    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

        Dim MyFilecollection As HttpFileCollection = Request.Files
        Response.Write("The count is " & MyFilecollection.Count)

        'End If

    End Sub
</script> 

我回到应用程序的响应总是“0”

我已经尝试了很多不同的发送文件的方法我不知道是否谨慎在这里列出它们但我主要是尝试使用AsyncHttpClient库这样:

File file = new File(Environment.getExternalStorageDirectory()+"/mygreatapp/userPhoto.jpg");
String connString = "myserverpag.aspx";
RequestParams params = new RequestParams();
try {
    params.put("picture", file,"image/jpeg");
} catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

AsyncHttpClient client = new AsyncHttpClient();
System.out.println(params);
client.post(connString, params, new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
        System.out.println(response);
        Log.w("async", "success!!!!");
    }      

@Override
public void onFailure(Throwable e, String response) {
    System.out.println(response);
    e.printStackTrace();
    }
}); 

最后,如果我将帖子发送到http://httpbin.org/post,我可以看到实际上我的帖子包含“files”对象中的数据

{
  "url": "http://httpbin.org/post",
  "args": {},
  "data": "",
  "origin": "76.101.127.54",
  "files": {
    "picture": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCABkAGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0G3lAx82c9a0IJwTjnJ4NcxBdgnAKkdsGtC2uOuD9DXmM7Ub/AJ5xwM+lSLOw+62CD37VmQygrz2OOR1rJ8XeKtP8NaUby5cNKcrDCCN0jYz68ADkntUoo7CS7t5LOSK6hheF0xJ5mGBQHODnqO/NUZdU8KWF5K5vNMsLu5jHmO8qK8oXJGeckAk49MmvlfXfGd/4huilxqd5Pl8hF/1aHpwucDA/zk1SaWWPCwJg42k7gSOvfrW/NO1mCpo+tbDXdJvJAllqVpcMeQI51YkAdRgnirckmRjOO1fH9ub7BkY+YpyNuMtjHXPrkdDXd+D/AIsazp88dnqii+gjwJEcbZkTB5B6N269enHUQospxaPfwR6k46YqrOQOmPypmlahaanp0WoWE6zW0y70dQRke/cH2PSklJJOaEZsr3BJ6kYqjcEYOeB7VZuWC5G4nPH1rPuJOCB0z2FWiWVZXRXIYqD70VUdxIxYMACeM0VdiTndB8S6fqE8ltbXIM0LlGjbhuDjIz1HuPUV09tdck5wMdeteB+Ho2s9etoNRgaK5Zg8IZGVt5IwN3APB3cEjkc816jaX9whCyA+/wCdZcrW5Tsnod/bXCnBJ5xivDfjlrGpan4rj0qJVMcDiK2VcEksBuZuvU/ovTvXp1jqG9h29815rFp9vcfFO5uYyzCJpHIZcYctyffrj3oirO5UFzOxFpfgyWKyAjBM7rhiBj9O4qeHwfd+Znv2B6Yr03TWRbc/L9DjrjinPgsflXHsOaE76noKETibTQRbqN/LDHIxVPVvD9rdYfbskjOUkXG4V2k4GXU46cd6zkUGUh+MgDn61Lk1qaKEXocv8P8AxHq/hDxSmnX11LcaTdnJVjnBwBkcdQB268D3HvcsismUOcjhgeCK8W8YaS6wWl5Go+WceUx6dQCOK9M0O6ZtMNu+7Nq/kb2/iCgYP5Yp83MrnDVpckixdyAMelZOoThUJYgZHUnHHOSat3cvzAk468VzGryfb72PS0YfviTMAefJU/N3B+YkL+JPatII5myrHoEPiRBql9JdRh/lt0jKjbEPu5yp5PLde9FdnZQE2424wOBiitrPuZXR578TNJstPtUv7KwuDZlkimtJYQyKvHIlzvGdoHftyAAKztL0a4ubIah4a1uXy26w3A3BWzlgeOCPoT7817F9kheF7d4o3icMHRlyGDZ3Ag9c5OazfDng3SdDnuZLHz/KuMboXfci4zjbxuHX1qJUm2VCqoxPOhrGt6S2dY0QvADk3FuchV9T1H5lax/D9s8fxJ1pHbLP+8UEYIVyG6YB/i9K94k0a1dAQrJgfw//AF68i18LD481K603YQkC27zFgw8xXYNnHQ47egHrUODje5vRmpSulsddbIvkjpjrjFEjqjZbAz265ryvWfGd1YnzbXUnuwxI2pbkqcDkhunH1rd8LeJNR1l5bVrR1uYOSrYBx03D/PelyNK53RqJuyOsuwj7m3MD2AqlHbo0ygHaCcHFc74r8TPo5ijdMyuuVRRnAHc9MdKxtE8am7v/ALPNL5cmcFWjx06jjODwfyPpU8ja0LdTlZ71qvhmG88DpLbjzGgmjcZ/iyVBH0+nrWVAPs8cqYZSX53Y5OACf0/nXV+GrmY/CO+mzHIDGpiaJ87sv97juCf0rltXhH2CLUrOGQ6dK7xRzlflZ1Jzj+h7gcdKwpKzsY4htpsydTuxHExZsAA5LHj61T8K20kjy3cyssl0wIByCkYztUjPXkk+7H0rI1m/S61pdGjiuJpAgmmRFCgx56AsQDk4B7EZHXiu30K2BUMw7c59K7oLQ82TNq0jjS3VWcA49aK9M+H+gWdzoTS31oryGY7Sw527VI/metFa2Zlc8Xtm1qJQI7lJlHAWZO3uw5Jra069usgXFnwPvPG2R9cda6CHQSdqCPkn0rX07wxunVlRjJsCcuduM5+7nGffGayhKTM3KxjxwZtxMGTbjJywBHtg4NePPbxahqWoR7AI7iRpjjrl2Yn8ulfTWq6FbWOhu0+3GMHbxxXgetaW+l6g80cTLbvIdkqj5eSSF9B0Jx6Z96dRNo7cDUXvRe7OU1fwxZvEqlVOz7ihASre3/1hUmhaYujyzyq37woc9zyQT/IflW5eTCGPzSR9e/51kxypPAXMsQdzyucY6/rUN3Vj1acFfUy/FulzSmzv49yO0WxiOuMkj+dZmjaVDDdm78qKRpF2yhlyrc5wRjHUfp7V2XiBJD4bsruLayBwJcMCydskdRzt6+tZEAyuMD64xUQn7tipwVzv/hBJd2mia5C6m6sIbGWcWzsQCVy20Eg4ye+D+NYjzyXkc+ojcqO0aTKSOHCtt4AAUYBC/Q11vguC4tvh5rcsP+vu41t4xjk73CbQCOcgn865+wtBp+lm0DsZZpfNnAfco25WNfQkAucj+/61jCHNMcqsaeHqX3ehW0yISvuYcduOtdx4T0qO4MlxcKVtoVyzdATxxn8e3sOMg1g6FZSXVwIolJzk4GCT9AcZPtnrXpngrS7/AFK+iH2eS10Ox+804IkupB0CjjCclix65wowxI7YxPn5SO08FSLP4eimENxCXkl3LOhV8iRlyQcdcfliirnh4ytoNg08ckUzW0ZkSQ/OrFRkH3z1orZIgyfDNrHeRXNyyDYs7xQOOjqpxux25yPwrcgtIoX3KOcYrM8JlI9At5Y0nhtRAhiWTbll27jJgZIJLHIJPQdO+ms00dsslxGm4KNwRu/4/wCNTCCihWRheOb6GOy+xmQB3wSM9BXlnxCigbwS7xwxiW1mWZpFGWdcsuOvAG/PGOlSfFHXy2otcqki7jtxGxyFA6+/auKg8TpcrLZJcNJ5oMQhmgYlgeDjZnt1zSqtx6DpW5uZM5a61C3dwshzgjaAeM/h1rD1e2mluGlgYxvuDAIR+ZFHibThaalJZ3qxT+S3J3BlIOCuD0P+IrNaKwGGDrEFBxgsuP8Avk81ikj3KVTm3Yy1tZbS+lnlMju/EjF8lsevqfrmt/RLj7TeR24/ifHHrXMR2lv5u5bmZlbOQkzj+tWvD11Dp+qySQs5CoQrOxb5iCM5P1FRNaFuXL1PoOO5hPgxoISo3OqhV53ENnjPOeD  },
  "headers": {
    "Content-Length": "4114",
    "Host": "httpbin.org",
    "Content-Type": "multipart/form-data; boundary=_PbbbesptaYhtEYTBDGjHF4U6F_T1n",
    "Connection": "close",
    "User-Agent": "android-async-http/1.4.4 (http://loopj.com/android-async-http)",
    "X-Request-Id": "b54d172b-940c-4281-9e71-e87829e888e1",
    "Accept-Encoding": "gzip",
    "Heroku-Request-Id": "b54d172b-940c-4281-9e71-e87829e888e1"
  },
  "form": {},
  "json": null
}

0 个答案:

没有答案