问题描述
我在用速卖通api上传产品(api.postAeProduct),中间有个参数detail(产品信息),这个值一般都是html,所以没办法放在url当中post,只能放在requestbody当中,但是现在我发现只要这个参数里面含有特殊字符(例如‘%’),调用就失败。速卖通上说默认UTF-8,我的确都是用utf-8,代码如下:HttpWebRequestmyReq=(HttpWebRequest)HttpWebRequest.Create(request);myReq.Method="Post";myReq.ContentType="application/x-www-form-urlencoded;charset=UTF-8;";varparameters="id=12345&detail=1234%1234";varbs=Encoding.UTF8.GetBytes(parameters);myReq.ContentLength=bs.Length;StreamrequestStream=myReq.GetRequestStream();requestStream.Write(bs,0,bs.Length);requestStream.Close();HttpWebResponseHttpWResp=(HttpWebResponse)myReq.GetResponse();StreammyStream=HttpWResp.GetResponseStream();StreamReaderreader=newStreamReader(myStream,Encoding.UTF8);stringcontent=reader.ReadToEnd();
我只要把detail改成12341234,(去掉%)就没问题了。又或者我只要把这个参数写到url里面去也没问题。有人能帮忙看下吗?谢谢!
解决方案
解决方案二:
换成其他字符
解决方案三:
难道是转义?歧义?
解决方案四:
亲,你现在还在搞开发吗,这个上传产品的demo能不能给我一份啊,我想改一个自己用的批量编辑上传产品的应用