我们最近与一家调查提供商签约发送调查问卷。他们有一个REST API来导入带有联系人的.csv文件
我查看了他们的documentation" importPanel"。我可以成功地使用它来创建一个新面板(邮件列表),但无法使用其他测试客户端发布带有请求的csv
然后我查看了here,其中显示" URL:如果存在,Qualtrics API将尝试从指定的URL加载CSV文件;否则,它只是查看数据的POST。"有谁能够向我解释这意味着什么?如果我需要提供~10个必需参数,它将如何"简单地"在帖子中找到该文件?
我在支持票证中询问了这一点,我得到的是php
代码段:
<?php
$baseURL = "https://clientname.qualtrics.com/WRAPI/ControlPanel/api.php";
// full path to file you want to include in post
$filePath_panel = "/path/to/panel_data.csv";
$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, $baseURL);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cURL, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($cURL, CURLOPT_MAXREDIRS, 43);
curl_setopt($cURL, CURLOPT_POST, true);
// all options being used, including User, Token, etc.
$options = array(
// insert/update options here
"Request" => "importPanel",
"User" => "",
"Token" => "",
"Format" => "JSON",
"Version" => "2.2",
"LibraryID" => "",
"Name" => "",
"ColumnHeaders" => ,
"Email" => ,
"FirstName" => ,
"LastName" => ,
"Language" => ,
"AllED" => ,
);
// add file to POST
$options['file'] = "@$filePath_panel";
curl_setopt($cURL, CURLOPT_POSTFIELDS, $options);
$results = curl_exec($cURL);
$info = curl_getinfo($cURL);
?>
我正在寻找使用C#执行此操作的各种方法,但不知道从哪里开始,我应该使用HttpClient
还是WebRequest
?
提前致谢
答案 0 :(得分:0)
据我了解你的php代码,这些选项被设置为POST数据。
如果内容不是多部分(并且我没有看到它在请求的任何位置设置),则POST内容在主体中编码为查询字符串,如下所示:
var1=value&var2=value&var3=value
将值编码(使用%XX替换的特殊字符)进行url编码非常重要,以免破坏查询序列。
无论如何,我建议不要直接使用WebClient和HttpClient,使用一些REST框架,如RestSharp(http://restsharp.org/),因为它会简化你的工作。
干杯。