Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Fremdes C# Steuern (https://www.delphipraxis.net/175875-fremdes-c-steuern.html)

Phoenix 25. Jul 2013 11:28

AW: Fremdes C# Steuern
 
Das geht doch alles aus dem Dokument hervor. Es ist ein einfaches HTTP Post. Da brauchts kein Wireshark. Das ist vermutlich deutlich zu komplex. Da würde es genügen, sich kurz mit Fiddler als HTTP-Proxy dazwischen zu klemmen und zu gucken auf welchen Pfad der Request geht, welches Encoding benutzt wird und ob ggf. neben dem File sonst noch zusätzliche Felder mitgesendet werden.

achi 3.0 25. Jul 2013 12:20

AW: Fremdes C# Steuern
 
Hallo,

werde mal mit Wireshark versuchen den Pfad an den die Daten geschickt werden usw. rauszubekommen. Dann kann ich ja den unten stehenden code anpassen und versuchen die Daten zu senden oder?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  DataStream : TIdMultiPartFormDataStream;
  URL       : string;
  response  : string;

begin
URL := '192.168.1.1/flash/user/data';
IdHTTP1.Request.CacheControl:='no cache';
IdHTTP1.Request.ContentType :='multipart/form-data';

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

end;

end;

Phoenix 25. Jul 2013 12:25

AW: Fremdes C# Steuern
 
Vielleicht heisst das Feld für das File auch nicht unbedingt file. Musst halt mal rein gucken. Also entweder mit dotPeek in die dll oder mit Wireshark / Fiddler in die Kommunikation. Das erstere ist meiner Meinung nach das einfachste weil schnellste und unkomplizierteste.

achi 3.0 25. Jul 2013 14:23

AW: Fremdes C# Steuern
 
Also habe mal mit dotPeek die DLL decompiliert. Werde daraus aber nicht schlau, keine hilfreiche info wie ich finde aber vielleicht sieht ihr was?

Hier der Inhalt der HttpCSharp.dll
Delphi-Quellcode:
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// Assembly HttpCSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 58ebf0ab-8e1a-4c99-97b5-f9d1226feecb
// References: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// References: System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// References: System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// References: HttpUtil, Version=2.0.1.1, Culture=neutral, PublicKeyToken=d7bba6a0fdc5f725
// References: System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Yaskawa")]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: AssemblyTitle("HttpCSharp")]
[assembly: AssemblyDescription("HttpUtil Library C# Test Application")]
[assembly: AssemblyProduct("HttpCSharp")]
[assembly: AssemblyCopyright("Copyright © Yaskawa America, Inc. 2011")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("b21abef5-0ace-4c65-b49f-915debf72ad8")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: CompilationRelaxations(8)]
[assembly: AssemblyVersion("1.0.0.0")]

Morphie 25. Jul 2013 14:48

AW: Fremdes C# Steuern
 
Kannst du die DLL hier anhängen, oder uns einen Download geben?

Phoenix 25. Jul 2013 14:50

AW: Fremdes C# Steuern
 
Zitat:

Zitat von achi 3.0 (Beitrag 1222674)
Hier der Inhalt der HttpCSharp.dll

Das ist nur die AssemblyInfo.......

achi 3.0 25. Jul 2013 15:08

AW: Fremdes C# Steuern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Auf der ersten seite hab ich einen Zipordner angehängt da sind alle Dateien drin auch die exe. Hier die DLL Anhang 39643

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

Gruß

achi 3.0 25. Jul 2013 15:13

AW: Fremdes C# Steuern
 
Ups, habs jetzt gesehen. Da steht noch ne Menge anderer zeugs drin. Aber wie packe ich das in meine IdHttp komponente.

Gruß

achi 3.0 25. Jul 2013 15:19

AW: Fremdes C# Steuern
 
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;

Morphie 25. Jul 2013 15:21

AW: Fremdes C# Steuern
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 Uhr.
Seite 2 von 3     12 3      

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