.net怎么调用这个接口,这个接口应该是java下面的吧!
http://123.123.11.23:9080/InterFace/Insert.do下面给了个例子,但是是用java写的。
Map map = new HashMap();
map.put("loginName", "admin");
map.put("loginPass", "admin");
map.put("source", "test"); String temp = HttpRequestProxy.doPost("http://123.123.11.23:9080/InterFace/Insert.do", map, "UTF-8");
try
{
System.out.println("返回的消息是:"+(new String(temp.getBytes("ISO-8859-1"),"UTF-8")).trim());
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
http://123.123.11.23:9080/InterFace/Insert.do下面给了个例子,但是是用java写的。
Map map = new HashMap();
map.put("loginName", "admin");
map.put("loginPass", "admin");
map.put("source", "test"); String temp = HttpRequestProxy.doPost("http://123.123.11.23:9080/InterFace/Insert.do", map, "UTF-8");
try
{
System.out.println("返回的消息是:"+(new String(temp.getBytes("ISO-8859-1"),"UTF-8")).trim());
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
解决方案 »
- WinForm图标icon大小切换问题
- 哪错误,提示连不上数据库
- 关于CommandType的问题。
- 有比二分法查找更快的吗?
- 如果一个对象的属性(值类型)作为一个方法的参数,那么在方法里面能不能取得传入属性的特性?
- 为何使用Remoting获取对象并使用之后提示 由于安全限制,不可访问
- 请问怎么样在没有标题栏没有边框的窗中模拟一块非客户区(比如在原来的标题栏的位置)?
- vs(2008和2010)编译和停止调试时卡顿如何解决?
- 荒唐:能用.NET做前台开发工具,而后台用LINUX+ORACLE吗?如何做?如何节省OS和DATABASE的花费
- combox 问题
- 加括号中内容的意思是?HttpWebRequest hwrq =(HttpWebRequest)wrq
- 对DataSet中的一张表进行控制
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
这个接口有三个参数:loginName、loginPass、source
("loginName", "admin");
("loginPass", "admin");
("source", "test");
看看这篇
但是现在地址是http://123.123.11.23:9080/InterFace/Insert.do,应该是一个java的东西,而且要传参数,我不知道怎么传。
namespace SimpleWebRequest{ class Program { static void Main(string[] args) { Console.WriteLine( PostDataToUrl("test", "http://www.microsoft.com") ); } /// <summary> /// Post data到url /// </summary> /// <param name="data">要post的数据</param> /// <param name="url">目标url</param> /// <returns>服务器响应</returns> static string PostDataToUrl(string data, string url) { Encoding encoding = Encoding.GetEncoding(sRequestEncoding); byte[] bytesToPost = encoding.GetBytes(data); return PostDataToUrl(bytesToPost, url); } /// <summary> /// Post data到url /// </summary> /// <param name="data">要post的数据</param> /// <param name="url">目标url</param> /// <returns>服务器响应</returns> static string PostDataToUrl(byte[] data, string url) { #region 创建httpWebRequest对象 WebRequest webRequest = WebRequest.Create(url); HttpWebRequest httpRequest = webRequest as HttpWebRequest; if (httpRequest == null) { throw new ApplicationException( string.Format("Invalid url string: {0}", url) ); } #endregion #region 填充httpWebRequest的基本信息 httpRequest.UserAgent = sUserAgent; httpRequest.ContentType = sContentType; httpRequest.Method = "POST"; #endregion #region 填充要post的内容 httpRequest.ContentLength = data.Length; Stream requestStream = httpRequest.GetRequestStream(); requestStream.Write(data, 0, data.Length); requestStream.Close(); #endregion #region 发送post请求到服务器并读取服务器返回信息 Stream responseStream; try { responseStream = httpRequest.GetResponse().GetResponseStream(); } catch(Exception e) { // log error Console.WriteLine( string.Format("POST操作发生异常:{0}", e.Message) ); throw e; } #endregion #region 读取服务器返回信息 string stringResponse = string.Empty; using(StreamReader responseReader = new StreamReader(responseStream, Encoding.GetEncoding(sResponseEncoding))) { stringResponse = responseReader.ReadToEnd(); } responseStream.Close(); #endregion return stringResponse; } const string sUserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; const string sContentType = "application/x-www-form-urlencoded"; const string sRequestEncoding = "ascii"; const string sResponseEncoding = "gb2312";
}
}这个程序里里提交了参数data,但是如果我要提交多个参数的话,采用什么格式呢?这个是接口提供者定义的还是别的什么?
我只调用过两种接口,一种是调用外网的webservice,一种调用http接口,参数直接写在url里的。http://www.google.com/index.html?id1=100&id2=230
PostDataToUrl("loginName=admin&loginPass=admin&source=test", ""http://123.123.11.23:9080/InterFace/Insert.do")
难道大家就没有碰见过这样的情况吗
举个例子,我调用别人的一个短信的接口,参数跟在url后面,参数是接收方手机号码和短信内容,这个是post还是get?