发布请求未将参数 android 传递给 IIS 服务器中的 asp.net

本文关键字:IIS 服务器 net asp android 布请求 请求 参数 | 更新日期: 2023-09-27 18:30:51

我正在尝试从 android ASP.NET Web 应用程序中触发创建操作。

代码似乎工作正常,没有错误。我在 Windows 7 中使用 IIS 6。我怀疑 IIS 中缺少配置?

我没有在网络应用程序中获得价值。

安卓代码:

List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("supplier_name", 
                                          "Thein Htike Aung"));
HttpClient client1 = new DefaultHttpClient();
HttpPost request = 
    new HttpPost("http://192.168.1.104/LogicUniversity/SupplierHandler.ashx");
try {
    UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);
    request.setEntity(formEntity);
    request.addHeader("Content-type", "application/x-www-form-urlencoded");
    HttpResponse response = client1.execute(request);
    BufferedReader in = new BufferedReader(
                          new InputStreamReader(
                                response.getEntity().getContent()));
    String line;
    String page="";
    line = in.readLine();
    while(line!=null)
    {
      page=page+line;
      line=in.readLine();
    }
    Log.i("Page",page);
    in.close();
} catch (ClientProtocolException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}             

在网络处理程序中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ApplicationLayer.Controllers;
using ApplicationLayer;
namespace PresentationLayer
{
    /// <summary>
    /// Summary description for SupplierHandler
    /// </summary>
    public class SupplierHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            string name = context.Request.QueryString["supplier_name"];
            if (name != null)
            {
                Supplier s = new Supplier();
                s.supplier_name = name;
                s.code = "TEST";
                new SupplierController().actionCreateSupplier(s);
            }
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

发布请求未将参数 android 传递给 IIS 服务器中的 asp.net

您说您正在使用 HTTP POST将值推送到服务器,但在 HTTP 处理程序中,您正在从查询字符串中读取:

string name = context.Request.QueryString["supplier_name"];

这应该是:

string name = context.Request.Form["supplier_name"];
192.168.1.104特定于

您的本地网络。您的HTTPPost请求,来自Andriod代码,假设Andriod设备在同一本地网络上,这是您的意图吗? 这可能是代码在开发环境中而不是生产环境中工作的众多原因之一。 您需要在 Web 服务器上配置静态 IP 才能访问本地网络外部的 Web 服务。