首页 新闻 赞助 找找看

哪位大神帮我把 以下的curl命令行转换成 C#的?

0
悬赏园豆:50 [已解决问题] 解决于 2012-10-07 13:46

curl --digest -u username:mima "http://192.168.1.101:2010/media/create?owner_uid=azuki&media_uid=test123"  --data "<media><name>test123</name><url>ftp://192.168.1.105/12689650.flv</url></media>" 

这curl命令行换成C#的形式 要怎么POST到服务器?

或者是如果把 test123改成中文名的话用  curl命令行怎么转码? <name>test123</name> 

我试了下 

 

curl --digest -u username:mima "http://192.168.1.101:2010/media/create?owner_uid=azuki&media_uid=test123"  --data "<media><name>中文</name><url>ftp://192.168.1.105/12689650.flv</url></media>" 

服务器一直返回错误....如果不是中文服务器就可以成功接受!

哪位大神帮忙看看!谢谢!

Lonely Bandit的主页 Lonely Bandit | 初学一级 | 园豆:85
提问于:2012-09-28 14:52
< >
分享
最佳答案
0

对于post而言,传输的数据全部都是文本,没有这种区别。。。

看这个:http://en.csharp-online.net/HTTP_Post

和msdn:http://msdn.microsoft.com/zh-cn/library/system.net.webrequest%28v=vs.80%29.aspx

下面这个函数,parameters就是你要传入的字符串。但是你的post不合符规范。post的数据按照规范是有个名称一个值的。例如,a=xxx&b=xxxx;你那个就是个xml。我不确定你这个是对的,但是如果你认为是对的,就这么上吧。


string
HttpPost (string uri, string parameters) { // parameters: name1=value1&name2=value2 WebRequest webRequest = WebRequest.Create (uri);
//string ProxyString = // System.Configuration.ConfigurationManager.AppSettings // [GetConfigKey("proxy")];
//下面这句是代理说明,没有的话记得设置为null,不然会试图取得系统代理设置,要很长时间(如果没代理的话)

//webRequest.Proxy = new WebProxy (ProxyString, true); //Commenting out above required change to App.Config
//下面这句是表单类型。模拟表单提交。
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";

byte[] bytes = Encoding.ASCII.GetBytes (parameters);

Stream os = null;
try { // send the Post
webRequest.ContentLength = bytes.Length;

//Count bytes to send
os = webRequest.GetRequestStream();
os.Write (bytes, 0, bytes.Length);
//Send it }

catch (WebException ex)

{ MessageBox.Show ( ex.Message, "HttpPost: Request error", MessageBoxButtons.OK, MessageBoxIcon.Error ); }

finally { if (os != null) { os.Close(); } }  
try { // get the response WebResponse
webResponse = webRequest.GetResponse();

if (webResponse == null) { return null; }

StreamReader sr = new StreamReader (webResponse.GetResponseStream());

return sr.ReadToEnd ().Trim (); }

catch (WebException ex)

{ MessageBox.Show ( ex.Message, "HttpPost: Response error", MessageBoxButtons.OK, MessageBoxIcon.Error ); }

return null; } // end HttpPost

MSDN里头写了有用户名和密码要求的时候的写法,request.Credentials = CredentialCache.DefaultCredentials;自己看下。


收获园豆:50
荣耀属于跪拜猫 | 小虾三级 |园豆:832 | 2012-10-07 12:41
其他回答(3)
0

c#哪有这种命令啊,写几行代码吧,是get还是post,自己看着办。

Virus-BeautyCode | 园豆:1619 (小虾三级) | 2012-09-28 17:37

我知道没这种命令,就是用c# POST怎么传这种数据,在?后面既有参数,又要带 xml数据的

支持(0) 反对(0) Lonely Bandit | 园豆:85 (初学一级) | 2012-09-28 17:39
0

         在弄一个参数把xml放进去

┢┦偉 | 园豆:1240 (小虾三级) | 2012-09-29 10:37
0

楼主你好,我看到你在10年的时候发了个帖子询问如何在asp.net里面后台cs文件里面修改或者保存前台js中用var定义的变量,你说你找到了方法,请问可以教我一下吗?现在我也被这个问题困扰。谢谢。

愉快编程 | 园豆:145 (初学一级) | 2012-10-27 15:50

太久了有点忘了,好像是这样的,找不到切切的访问var的变量改这样的

<input type="hidden" id="ImageUrl" runat="server" style="width: 1px" />
<script type="text/javascript">
var focus_width=221
var focus_height=150
var text_height=0
var swf_height = focus_height+text_height



// var pics='Images/1.jpg|Images/2.jpg|Images/3.jpg|Images/4.jpg'

var links='||'
var texts=''
var banner='<param name="allowscriptAccess" value="sameDomain"><param name="movie" value="images/banner.swf"><param name="quality" value="high"><param name="bgcolor" value="#DADADA">'

document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ focus_width +'" height="'+ swf_height +'">');
document.write(banner);
document.write('<param name="menu" value="false"><param name=wmode value="opaque">');
document.write('<param name="FlashVars" value="pics='+document.getElementById("ImageUrl").value+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'">');
document.write('</object>');
</script>

 

CS,这样写:ImageUrl.Value = paths[2].Substring(3) + "|" + paths[3].Substring(3) + "|" + paths[4].Substring(3) + "|" + paths[5].Substring(3);

支持(0) 反对(0) Lonely Bandit | 园豆:85 (初学一级) | 2012-11-01 08:48

@Lonely Bandit: 好的好的,谢谢。还能给我回复,真的很意外。呵呵,再次表示感谢。认真看一下。

支持(0) 反对(0) 愉快编程 | 园豆:145 (初学一级) | 2012-11-01 17:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册