public class HttpRequestActivity : CodeActivity
{
[Category("Simple Authentication")]
[RequiredArgument]
public InArgument<string> Username { get; set; }
[Category("Simple Authentication")]
[RequiredArgument]
public InArgument<string> Password { get; set; }
[Category("Input")]
[RequiredArgument]
public InArgument<string> URL { get; set; }
[Category("Options")]
[RequiredArgument]
public InArgument<string> Parameters { get; set; }
[Category("Output")]
public OutArgument<string> Result { get; set; }
protected override void Execute(CodeActivityContext context)
{
string resultStr = "";
try
{
string httpUrl = URL.Get(context);
if (Parameters.Get(context) != "")
{
httpUrl = string.Format("{0}?{1}", httpUrl, Parameters.Get(context));
}
resultStr = TestHttpJson(Username.Get(context), Password.Get(context), httpUrl);
}
catch (Exception ex)
{
resultStr = ex.Message.ToString();
throw;
}
Result.Set(context, resultStr);
}
//使用Get方式,通过代理方式使用httprequest获取数据,需要用户认证
public string TestHttpJson(string userName, string Pwd, string httpUrl)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(httpUrl);
request.Credentials = new NetworkCredential(userName, Pwd);
var defaultProxy = WebProxy.GetDefaultProxy();
defaultProxy.UseDefaultCredentials = true;
request.Proxy = defaultProxy;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StringBuilder content = new StringBuilder(); ;
// System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
Stream responseStream = response.GetResponseStream();
StreamReader sReader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
Char[] sReaderBuffer = new Char[256];
int count = sReader.Read(sReaderBuffer, 0, 256);
while (count > 0)
{
String tempStr = new String(sReaderBuffer, 0, count);
content.Append(tempStr);
count = sReader.Read(sReaderBuffer, 0, 256);
}
//content = await reader.ReadToEndAsync();
sReader.Close();
return content.ToString();
}
}