发布请求未将参数 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;
}
}
}
}
您说您正在使用 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 服务。