Я создал решение REST API в компоненте сценария SSIS, используя C#, который выбирает запись набора данных из Oracle, изменяет набор записей в формат JSON и отправляет его в конечную точку REST Web API. Теперь, когда я запускаю код; выдает ошибку "Connection forcibly closed by the remote host"
в методе GetResponse (). Пожалуйста, смотрите ниже мой код:
#endregion
#region Namespaces
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
using System.Net;
using Newtonsoft.Json.Serialization;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
#endregion
public class ScriptMain : UserComponent
{
String jsonStr = null;
int rowNumber = 0;
private static string _uploadUrl = "https://mycloud.integration.cloud.com:5501/STAGING_PUBLISH/1.0/create";
private dynamic _sfResult;
private static string output;
public override void PreExecute()
{
base.PreExecute();
/*
* Add your code here
*/
}
public override void PostExecute()
{
base.PostExecute();
CreateNewOutputRows();
}
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
string jsonStr = @"{""DataIn"": { ""client_id"": ""100001""
, ""first_name"": ""Test""
, ""last_name"": ""User1""
, ""mobile_phone"": ""411111111""
, ""current_status"": ""Yes""},
""ExternalID"" : ""100001"",
""System"" : ""Import"" }";
//json
ProcessJson(jsonStr);
}
public void ProcessJson(String VarStr) {
if (VarStr.ToString() != "")
{
HttpWebRequest httpWebRequest = HttpWebRequest.CreateHttp(_uploadUrl);
httpWebRequest.ContentType = "application/json; charset=utf-8";
httpWebRequest.Method = "POST";
//var newStream = httpWebRequest.GetRequestStream();
httpWebRequest.Accept = "application/json; charset=utf-8";
httpWebRequest.Headers.Add("Authorization", "Basic " + "SVNUU1NJU0NSTUFkbWluc0B1bmlzYS5lZHUuYXU6WEJ1dk5iNVpIbg==");
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(jsonStr);
body = body + VarStr;
streamWriter.Flush();
}
//httpWebRequest.KeepAlive = false;
httpWebRequest.ServicePoint.ConnectionLimit = 1;
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); // <<------ FAILS HERE
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var responseText = streamReader.ReadToEnd();
Console.WriteLine(responseText);
}
}
}
public override void CreateNewOutputRows()
{
base.CreateNewOutputRows();
}
}
Буду очень признателен, если кто-нибудь сможет мне помочь с этим Спасибо.