大哥帮忙看看POST提交数据到服务器的问题

带头大哥_ 2015-03-24 08:03:53
我要在CS程序上以POST方式提交数据到我的WEB服务器上面,以下是接口
请求地址
api/set_room
请求方法
POST
错误码
1000: API 系统出现错误。
1001: 缺省为保存时候验证出错所返回的信息。
1002: 插入数据出错。
1003: 更新数据出错。
参数
format: 'json/xml' 可选 数据格式,默认为json
key: 'ABCDEFGH12345678' 必须 密匙,接口验证
id: '1' 可选 ID,有ID为修改,无ID为添加
user_id: '1' 必须 商家ID
store_id: '1' 必须 门店ID
title: '标题' 可选 标题
price01: '0.00' 可选 套餐01价格
price02: '0.00' 可选 套餐02价格
price03: '0.00' 可选 套餐03价格
price04' '0.00' 可选 套餐04价格
number' '0' 可选 数量,该类包房总数量 默认:0
thumb: 'file' 可选 缩略图,图片
image: 'file' 可选 大图片,图片
summary: '摘要' 可选 摘要,文本
content: '内容' 可选 内容,文本
sort: '0' 可选 排序,按升序排序 默认:0
status: '1' 可选 状态,1:显示 0:不显示 默认:1

以下是我在网上找的代码,请大神帮我改改
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;

namespace ConsoleApplication1
{
class Program
{
static string post(string url, string data)
{
string str = string.Empty;

try
{
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);

byte[] buffer = Encoding.UTF8.GetBytes(data);

webReq.Method = "POST";
webReq.ContentType = "json";
webReq.ContentLength = buffer.Length;

Stream postData = webReq.GetRequestStream();
postData.Write(buffer, 0, buffer.Length);
postData.Close();

HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse();
Stream answer = webResp.GetResponseStream();
StreamReader answerData = new StreamReader(answer);
str = answerData.ReadToEnd();
}
catch (Exception ex)
{
str = string.Empty;
}

return str;
}

static void Main(string[] args)
{
string url = "http://wktv.ycoem.com/api/set_room";
string data = "user_id=301&store_id=412&key=ADFAFSFSAFASFAFA";
Console.WriteLine(post(url,data));
Console.ReadKey();
}
}
}


因为是新手,所以请尽量多点注释内容,谢谢,特别注意以下其中有2个参数是图片文件哈
...全文
3204 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
static void NetHttpTest()
        {
            using (var client = new HttpClient())
            {
                using (var content = new MultipartFormDataContent())
                {
                    client.BaseAddress = new Uri("http://localhost:16724/");
                    var fileContent = new ByteArrayContent(File.ReadAllBytes(@"c:\work\thumb.jpg"));
                    fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                    {
                        FileName = "thumb.jpg"
                    };
                    content.Add(fileContent);
                    fileContent = new ByteArrayContent(File.ReadAllBytes(@"c:\work\image.jpg"));
                    fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                    {
                        FileName = "image.jpg"
                    };
                    content.Add(fileContent);
                    var dic = new Dictionary<string, string>();
                    dic.Add("key", "ABCDEFGH12345678");
                    dic.Add("id", "1");
                    //…… and so on
                    var dataContent = new FormUrlEncodedContent(dic);
                    content.Add(dataContent);
                    var result = client.PostAsync("/api/set_room", content).Result;
                    Console.WriteLine(result.StatusCode);
                }
            }
        }
你多张图这样不知道对不对,用的HttpClient,要4.0版本以上才行
  • 打赏
  • 举报
回复
引用 2 楼 u012837409 的回复:
就是图片文件!因为刚入行 所以你说的字符串还是文件流有点听不明白
你贴的这个所谓“接口”文档本身就只是一个标题党文章,没有真正的实现方面的示例。 真正的文档除了会有各个“字段”的标题介绍之外,它至少会附加一个(一对) http 抓包结果出来,让读者知道到底层使用了什么协议来实现所谓的“POST提交”格式。不知道稍微底层一点的知识,只看你贴的所谓“接口”说明,神仙也不知道到底该怎样写代码啊。 更何况你只是从网上找一段代码就贴到这里来,是不是误导别人、也误导了你自己呢? 既然刚到一个公司,在“如何双脚落地”方面你应该问你的公司的老同事,或者如果你明白文档应该写成什么样才能真正足够开发的话那么就去找相应的文档。
泡泡龙 2015-03-24
  • 打赏
  • 举报
回复
你用fiddler抓个包,照着抄
带头大哥_ 2015-03-24
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
图片是要传字符串还是传data文件流啊?
?就是图片文件!因为刚入行 所以你说的字符串还是文件流有点听不明白
  • 打赏
  • 举报
回复
图片是要传字符串还是传data文件流啊?

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧