AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fremdes C# Steuern

Ein Thema von achi 3.0 · begonnen am 25. Jul 2013 · letzter Beitrag vom 29. Jul 2013
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#1

AW: Fremdes C# Steuern

  Alt 25. Jul 2013, 14:50
Hier der Inhalt der HttpCSharp.dll
Das ist nur die AssemblyInfo.......
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
achi 3.0

Registriert seit: 7. Nov 2008
Ort: Köln
32 Beiträge
 
Delphi 5 Professional
 
#2

AW: Fremdes C# Steuern

  Alt 25. Jul 2013, 15:08
Auf der ersten seite hab ich einen Zipordner angehängt da sind alle Dateien drin auch die exe. Hier die DLL HttpUtil.zip

Musste die Datei zippen. Anscheinend kann man hier keine DLL's hochladen.

Gruß
  Mit Zitat antworten Zitat
achi 3.0

Registriert seit: 7. Nov 2008
Ort: Köln
32 Beiträge
 
Delphi 5 Professional
 
#3

AW: Fremdes C# Steuern

  Alt 25. Jul 2013, 15:13
Ups, habs jetzt gesehen. Da steht noch ne Menge anderer zeugs drin. Aber wie packe ich das in meine IdHttp komponente.

Gruß
  Mit Zitat antworten Zitat
achi 3.0

Registriert seit: 7. Nov 2008
Ort: Köln
32 Beiträge
 
Delphi 5 Professional
 
#4

AW: Fremdes C# Steuern

  Alt 25. Jul 2013, 15:19
Das hier müsste man entschlüsseln. Was bedeutet hier "http://{0}/upload/{1}/"

Wahrscheinlich steht {0} für die ip und {1} für directory also müsste die url wie folgt lauten: http://192.168.1.1/upload/data/cam



 
public string SendFileToUserDirectory(string ipAddress, string filePath, string directory)
{
HttpUtility.UpdateBoundary();
string uri = string.Format("http://{0}/upload/{1}/", (object) ipAddress, (object) directory);
string methodPostDataString = HttpUtility.CreateNonMethodPostDataString();
return this.PostUploadFile(filePath, uri, methodPostDataString, false);
}


sollte doch so funktionieren oder muss ich auf noch etwas achten????

Delphi-Quellcode:
var
  DataStream : TIdMultiPartFormDataStream;
  FURL : string;
  response : string;

begin
FURL := 'http://192.168.1.1/upload/data/cam';
IdHTTP1.Request.CacheControl:='no cache';
IdHTTP1.Request.ContentType :='multipart/form-data';

try
      DataStream := TIdMultiPartFormDataStream.Create;
      DataStream.AddFile('archive','c:\Yaskawa\Cam_Y.csv', 'multipart/form-data');
      response := IdHTTP1.Post(FURL, DataStream);
      DataStream.Free;
except

end;

end;

Geändert von achi 3.0 (25. Jul 2013 um 15:26 Uhr)
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#5

AW: Fremdes C# Steuern

  Alt 25. Jul 2013, 15:21
Die Methode hat drei Parameter:
ipAddress
filePath
directory

Code:
string uri = string.Format("http://{0}/upload/{1}/", (object) ipAddress, (object) directory);
Das beudetet im Prinzip, dass für {0} der Parameter ipAddress eingesetzt wird und für {1} der Parameter directory


edit:
je nachdem wie fit du in C# bist, würde ich an deiner Stelle die C#-Bibliothek einfach nach Delphi übersetzen... Das ist relativ schnell gemacht, wenn man den C#-Code lesen und mit Delphi umgehen kann
  Mit Zitat antworten Zitat
achi 3.0

Registriert seit: 7. Nov 2008
Ort: Köln
32 Beiträge
 
Delphi 5 Professional
 
#6

AW: Fremdes C# Steuern

  Alt 25. Jul 2013, 15:33
Mir gehts ja nur darum eine Datei zu senden. Müsste dann der folgende code nicht reichen.

Bin mir nur hier ataStream.AddFile('archive','c:\Yaskawa\Cam_Y.csv' , 'multipart/form-data'); nicht sicher.

Kenn mich mit C# leider nicht aus!!


Delphi-Quellcode:
var
  DataStream : TIdMultiPartFormDataStream;
  FURL : string;
  response : string;

begin
FURL := 'http://192.168.1.1/upload/data/cam';
IdHTTP1.Request.CacheControl:='no cache';
IdHTTP1.Request.ContentType :='multipart/form-data';

try
      DataStream := TIdMultiPartFormDataStream.Create;
      DataStream.AddFile('archive','c:\Yaskawa\Cam_Y.csv', 'multipart/form-data');
      response := IdHTTP1.Post(FURL, DataStream);
      DataStream.Free;
except

end;

end;
  Mit Zitat antworten Zitat
achi 3.0

Registriert seit: 7. Nov 2008
Ort: Köln
32 Beiträge
 
Delphi 5 Professional
 
#7

AW: Fremdes C# Steuern

  Alt 25. Jul 2013, 15:46
Ich denke mal das ich das hier auch irgendwie entschlüsseln muss. Weil hier wird der stream ja wirklich gesendet. Ich weiß nicht ob da mein Delphicode so direkt passt.

 
private string PostUploadFile(string filePath, string uri, string postMethod, bool validate)
{
string fileName = this.ExtractFileName(filePath);
if (validate && !this.IsValidFileName(fileName))
return "Invalid file name! File name must match one of those found in default configuration!";
HttpWebRequest postRequest = HttpUtility.CreatePostRequest(uri);
byte[] bytes1 = Encoding.UTF8.GetBytes(HttpUtility.CreateFilePostDataString(filePath, "text/xml"));
byte[] bytes2 = Encoding.UTF8.GetBytes(postMethod);
byte[] bytes3 = Encoding.UTF8.GetBytes(HttpUtility.CreateBoundaryPostDataString());
FileStream fileStream = new FileInfo(filePath).Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
long num = (long) bytes1.Length + fileStream.Length + (long) bytes2.Length + (long) bytes3.Length;
postRequest.ContentLength = num;
Stream requestStream = ((WebRequest) postRequest).GetRequestStream();
requestStream.Write(bytes1, 0, bytes1.Length);
byte[] buffer = new byte[fileStream.Length];
int count;
while ((count = fileStream.Read(buffer, 0, buffer.Length)) != 0)
requestStream.Write(buffer, 0, count);
requestStream.Write(bytes2, 0, bytes2.Length);
requestStream.Write(bytes3, 0, bytes3.Length);
requestStream.Close();
fileStream.Close();
new StreamReader(postRequest.GetResponse().GetResponseStream()).ReadToEnd();
return "";
}
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz